客户端与服务器端Socket的区别与联系?

文章转载自:https://blog.51cto.com/u_15127544/3922290

1.服务端: 监听   
2.客户端: 连接

Socket本身是一样的,客户端的是请求,服务端是响应,他们之间可以传递流。

一个套接字: 客户端请求

一个套接字: 服务端处理

一个连接就是一对套接字

联系:
socket相当于流缓冲区,都通过各自socket来获取流中的数据。2端socket通过一条固定“电话线”进行通讯,即Client端选择跟哪台Server,哪个端口建立连接;作为Server端只监听相应的端口。在这里,Client处于主动。
建立连接后,两端都可以使用流通过socket相互的发送信息和接受信息。两端的socket都会不断刷新socket里的内容。   
    
区别:
在通讯完毕后,Server端的线程会关闭socket连接

区别在于,通讯前

服务器端套接在 在某一端口处监听客户端的连接,等客户端连接
客户端连接服务器端的 ip 和端口,
等双方连接起来的时候 就可以互相通讯,双方没有区别了。

两个Socket形成一个相互连接的Socket接口,在Client端和Server建立一个可以通讯的通道
InputStream in = new InputStream(s.getInputStream());
OutputStream out = new OutputStream(s.getOutputStream());   

就可以在两端建立一个用于通讯输入输出流

客户端会创建的套接字Socket和服务器端的accept()方法返回的套接字Socket进行通信,而ServerSocket创建的套接字只是用于监听客户端的连接请求,而不进行通信
 

Guess you like

Origin blog.csdn.net/weixin_44260459/article/details/121143850