TCP通信的基本步骤:
public class TCPClient {
public static void main(String[] args) throws IOException {
//创建一个客户端对象socket,构造方法绑定服务器的IP地址和端口号
Socket socket = new Socket("127.0.0.1", 8888);
//使用socket方法中的getOutputStream()获取网络字节输出流OutputStream对象
OutputStream os = socket.getOutputStream();
//使用网络字节输出流OutputStream对象的write方法,给服务器发送数据
os.write("你好服务器".getBytes());
//使用socket对象中的getInputStream()对象获取网络字节输入流InputStream对象
InputStream is = socket.getInputStream();
//使用网络字节输入流InputStream对象的Read方法,读取服务器回写的数据
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes, 0, len));
//释放资源(socket)
socket.close();
}
}
public class TCPServer {
public static void main(String[] args) throws IOException {
//创建ServerSocket对象问系统要指定端口号
ServerSocket server = new ServerSocket(8888);
//使用ServerSocket对象中的accept,获取到请求的客户端对象的socket
Socket socket = server.accept();
//使用socket对象中的getInputStream()方法获取网络字节输入流InputStream对象
InputStream is = socket.getInputStream();
//使用网络字节输入流InputStream对象中的Read方法,读取客户端发送的数据
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes,0,len));
//使用socket对象中的getOutputStream()方法获取网路字节输出流OutputStream对象
OutputStream ops = socket.getOutputStream();
//使用网路字节输出流OutputStream对象的write方法,给客户端回写数据
ops.write("收到数据,谢谢".getBytes());
//释放资源
socket.close();
server.close();
}
}