socket
2019-05-29 本文已影响0人
程南swimming
socket:应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信
Java 为 TCP 协议提供了两个类:Socke 类和 ServerSocket 类。一个 Socket 实例代表了 TCP 连接的一个客户端,而一个 ServerSocket 实例代表了 TCP 连接的一个服务器端。
由于服务端在调用 accept()等待客户端的连接请求时会阻塞,直到收到客户端发送的连接请求才会继续往下执行代码,因此要为每个 Socket 连接开启一个线程。
每个 Socket 实例会关联一个 InputStream 和 OutputStream 对象,我们通过将字节写入套接字的 OutputStream 来发送数据,并通过从 InputStream 来接收数据。
编程实例:
1:客户端建立socket 绑定接口 Socket client=newSocket(host,port);
2:客户端socket向服务端发请求 Writer writer = new OutputStreamWriter(client.getOutputStream());
writer.write("Hello From Client");写入数据
3:服务端等待连接 Socket socket = serverSocket.accept();
4:服务端读入 Reader reader=newInputStreamReader(socket.getInputStream());