欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TCP客户端和服务端通信

程序员文章站 2022-06-05 21:08:17
...

TCP客户端和服务端通信

额外工具:TCP调试助手。

先进入cmd命令符查询自己的电脑IP。
客户端代码:

package network;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;


public class TCPClient {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		//1、创建Socket服务,指定连接的地址和端口号,创建成功将发出连接请求
				Socket s = new Socket("192.168.1.111",20000);
				
				//2、连接成功后,将形成数据通道,即输入和输出IO流,可以通过getInpuStream()和getOutputStream()方法获取IO流对象。
				OutputStream out = s.getOutputStream();
				
				//3、获取IO对象以后,就可以通过操作IO流来对数据进行读写。
				out.write("Hello,TCPServer!".getBytes());
				
				//4.关闭流
				s.close();
	}

}

服务器端代码:


package network;
 
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
 
public class TCPServer {
 
	public static void main(String[] args) throws IOException {
		
		//1、创建服务端Socket对象,绑定端口号。
		ServerSocket ss = new ServerSocket(30000);
		
		//2、调用accept()方法来侦听端口号是否有连接请求,有,则返回一个socket对象,该socket将会与客户端的socket形成数据通道;如果没有,则该方法一直处于阻塞状态。
		Socket s = ss.accept();
		
		//3、有了与客户端连接的socket,同样我们可以返回输入和输出流,而客户端socket服务的输出流对应是服务端socket对象的输入流。
		
		InputStream in = s.getInputStream();
		byte[] buf = new byte[1024];
		int len = in.read(buf);
		System.out.println(new String(buf,0,len));
		s.close();
		ss.close();
		
		//4.关闭socket流
		
	}
 
}


这样就能做些简单的实验,进行tcp编程。

相关标签: java