JavaSocket简单通信
以下介绍:简单的socket发送消息,服务的Server 相互 客户端Client,进行简单的传递消息:
服务端代码:
package test;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
/**
* 服务器连接的Socket
*/
public static ServerSocket cServerSocket;
/**
* 连接
*/
public static Socket cSocket;
/**
* 端口
*/
public static final int PORT = 8888;
public static void main(String[] args) {
DataInputStream dis = null;
DataOutputStream dos = null;
try {
cServerSocket = new ServerSocket(PORT);
while (true) {
System.out.println("正在等待客户连接...");
// 这里处于等待状态,如果没有客户端连接,程序不会向下执行
cSocket = cServerSocket.accept();
dis = new DataInputStream(cSocket.getInputStream());
dos = new DataOutputStream(cSocket.getOutputStream());
// 读取数据
String clientStr = dis.readUTF();
String msg = "已收到信息:"+clientStr;
// 写出数据
dos.writeUTF(msg);
System.out.println(msg);
System.out.println("---客户端信息打印,IP:"
+ cSocket.getInetAddress()
+ " Prot:" + cSocket.getPort());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (dis != null) {
dis.close();
}
if (dos != null) {
dos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端代码:
private Socket cSocket;
// 服务器server/IP地址(当前PC的IP地址)
private final String ADDRESS = "192.168.8.2";
// 服务器端口
private final int PORT = 8888;
cThread = new Thread() {
@Override
public void run() {
super.run();
DataInputStream dis = null;
DataOutputStream dos = null;
try {
// 阻塞函数,正常连接后才会向下继续执行
cSocket = new Socket(ADDRESS, PORT);
dis = new DataInputStream(cSocket.getInputStream());
dos = new DataOutputStream(cSocket.getOutputStream());
// 向服务器写数据
dos.writeUTF("hello socket...");
// 读取服务器发来的数据
cContent += dis.readUTF();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (dis != null) {
dis.close();
}
if (dos != null) {
dos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
};
cThread.start();
运行效果:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006
JavaSocket简单通信的更多相关文章
- Eclipse搭建服务器,实现与Android的简单通信
---恢复内容开始--- 目标:实现客户端(Android App)与服务器(PC)的简单通信 相关准备:eclipse_mars.tomcat8.Android Studio 实现: 1.java环 ...
- Spring+Netty4实现的简单通信框架
参考:http://cpjsjxy.iteye.com/blog/1587601 Spring+Netty4实现的简单通信框架,支持Socket.HTTP.WebSocket_Text.WebSock ...
- 【转】Qt Socket简单通信
最近要用到Qt的Socket部分,网上关于这部分的资料都比较复杂,我在这总结一下,把Socket的主要部分提取出来,实现TCP和UDP的简单通信. 1.UDP通信 UDP没有特定的server端和cl ...
- C# 简单通信(实现文件传输)
https://blog.csdn.net/Sayesan/article/details/82185772 之前写过一个简单通信传输,不过只有聊天的功能,现在实现了文件传输的功能,借鉴于网上一篇博客 ...
- 基于TCP 协议的socket 简单通信
DNS 服务器:域名解析 socket 套接字 : socket 是处于应用层与传输层之间的抽象层,也是一组操作起来非常简单的接口(接受数据),此接口接受数据之后,交由操作系统 为什么存在 soc ...
- Python网络编程-Socket简单通信(及python实现远程文件发送)
学习python中使用python进行网络编程,编写简单的客户端和服务器端进行通信,大部分内容来源于网络教程,这里进行总结供以后查阅. 先介绍下TCP的三次握手: 1,简单的发送消息: 服务器端: i ...
- 基于STM32F1与NRF24L01模块的SPI简单通信
一.前言 1.简介: 本文是基于STM32F1,将数据发送至NRF模块的寄存器,并将数据重新读取,通过串口发送出来的简单SPI单通信. 2.SPI简介: 调过STM8的都已经对SPI有所了解,调法都一 ...
- TCP和UDP并实现socket的简单通信
http://www.cnblogs.com/IPrograming/archive/2012/10/15/CSharp_Socket_4.html http://www.cnblogs.com/do ...
- C#使用 UdpClient 类进行简单通信的例子
UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两 ...
随机推荐
- chrome 调试参数(鼠标事件)
1.监听鼠标事件: monitorEvents(document.body, 'mouse') 取消监听: unmonitorEvents(document.body) 原文链接: https://b ...
- PyDev找不到的问题
[PyDev找不到的问题] 下载最新版本eclipse,下载最新版jdk,即可. 参考:http://blog.csdn.net/cnweike/article/details/27096113
- iOS codeview
1.环境配置 oclint:http://oclint.org/ xcpretty:https://github.com/supermarin/xcpretty 使用Mac安装xcpretty过程可能 ...
- C#中获取串口与并口列表
//获取系统中的串口并加入到下拉框中 cbCashBoxPort.Items.Clear(); string[] ports = System.IO.Ports.SerialPort.GetPortN ...
- linux引导系统
一.linux引导系统 1.选择操作系统 /etc/grub.conf 设置grub引导装载程序口令,使用单用户模式时必须输入此密码 password --md5 md5后的密码字符串(可以通过gru ...
- 纯净版Windows7系统迅雷下载路径
windows 7 旗舰版64位------------------- Windows 7 Ultimate (x64) - DVD (Chinese-Simplified) 详细信息 文件名 ...
- RPM包制作方法
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- Luogu 1070 道路游戏
看完题面想了一会发现只会写$n^3$,愣了一会才想出了单调队列优化的做法. 90分算法: 设$f_{i, j, k}$表示第$i$分钟在第$j$座城市已经走了$k$步的最大价值,转移显然,时间复杂度$ ...
- java jvm入门 jvm什么意思 jvm调优
接下来我会给大家讲解 国内最顶尖的jvm技术 不服来战
- powerdesigner 生成表备注
第一步: 操作:Database-->Edit Current DBMS,进入下图页面, 然后分别将 Script-->Objects-->Table-->TableComme ...