概述
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。

Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。
Java为客户端提供了Socket
类,为服务器端提供了ServerSocket
类。
接收端
- 创建服务器端的Socket对象(ServerSocket) :
ServerSocket(int port)
- 监听客户端的连接,返回一个Socket对象 :
Socket accept()
- 获取输入流,读数据:
InputStream getInputStream()
- 释放资源 :
void close()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket;
public class ServerDemo { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(9000); Socket accept = ss.accept(); InputStream is = accept.getInputStream(); byte[] bytes = new byte[1024]; int len = is.read(bytes); String s = new String(bytes, 0, len); System.out.println("数据是:" + s); accept.close(); ss.close(); } }
|
发送端
- 创建客户端的Socket对象(Socket) :
Socket(String host, int port)
- 获取输出流,写数据 :
OutputStream getOutputStream()
- 释放资源 :
void close()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import java.io.IOException; import java.io.OutputStream; import java.net.Socket;
public class ClientDemo { public static void main(String[] args) throws IOException { Socket socket = new Socket("192.168.1.63",9000); OutputStream os = socket.getOutputStream(); os.write("hello world".getBytes()); socket.close(); } }
|