JAVA TCP通信(客户端-服务端)
程序员文章站
2022-06-05 21:02:40
...
一、简单通信
①客户端发送数据
// 创建客户端的socket服务,指定目的主机和端口
Socket sc = new Socket(" 172.20.1.34", 10000);
// 为了发送数据,应该获取socket中的输出流
OutputStream out = sc.getOutputStream();
// write接收字节数据
out.write("tcp test".getBytes());
sc.close();
②服务端接收数据
public static void main(String[] args) throws Exception{
// 建立服务端Socket服务,并指定监听一个端口
ServerSocket ss = new ServerSocket(10000);
// 通过accept方法来获取连接过来的客户端对象
Socket s = ss.accept();
String IP = s.getInetAddress().getHostAddress();
System.out.println("IP:"+IP+"...connected");
// 获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据
// 这里的源来自对方机器网络数据,
InputStream is = s.getInputStream();
byte[] b = new byte[1024];
int len = is.read(b);
System.out.println(new String(b,0,len));
// System.out.println(is.read(b));
s.close();
}
二、互通往来
①客户端
public static void main(String[] args) throws Exception{
// 创建客户端的socket服务,指定目的主机和端口
Socket sc = new Socket("172.20.1.34", 10000);
// 为了发送数据,应该获取socket中的输出流
OutputStream out = sc.getOutputStream();
// write接收字节数据
out.write("第一次握手".getBytes());
InputStream is = sc.getInputStream();
byte[] by = new byte[1024];
int len = is.read(by);//read没读到数据会监听等待
System.out.println(new String(by, 0 ,len));
sc.close();
}
②服务端
public static void main(String[] args) throws Exception{
// 建立服务端Socket服务,并指定监听一个端口
ServerSocket ss = new ServerSocket(10000);
// 通过accept方法来获取连接过来的客户端对象
Socket s = ss.accept();
String IP = s.getInetAddress().getHostAddress();
System.out.println("IP:"+IP+"...connected");
// 获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据
// 这里的源来自对方机器网络数据,
InputStream is = s.getInputStream();
byte[] b = new byte[1024];
int len = is.read(b);
System.out.println(new String(b,0,len));
// System.out.println(is.read(b));
OutputStream os = s.getOutputStream();
os.write("第二次握手".getBytes());
s.close();
ss.close();
}
上一篇: UI 界面的调整