Far*_*hid 2 sockets linux network-programming client-server
我的问题是基于以下理解
我试图实现我自己的服务器,其中 socket() 和 accept() 返回不同的套接字描述符值(是否总是这样?)。我的问题是为什么说如果服务器中没有打开新端口,accept() 会创建一个新套接字,并且 ip:port 对于 socket() 和 accept() 返回的套接字描述符是相同的。如果新套接字是由 accept() 创建的,它与 socket() 创建的套接字有何不同?
我试图实现我自己的服务器,
socket()并accept()返回不同的套接字描述符值(是否总是这样?)。
是的。
我的问题是为什么说
accept()如果服务器中没有打开新端口并且 ip:port 对于由socket()和返回的套接字描述符相同,则它会创建一个新套接字accept()。如果新套接字是由accept()它创建的,它与由它创建的套接字socket()有何不同 ?
因为第一个套接字用于等待通信,而第二个套接字用于通信。到呼叫socket(+ bind+ listen)制备的通信端点,又名插座(或服务器套接字)来接收传入呼叫。的呼叫到accept一个充分的准备通信点,对于呼入呼叫,并等待发生这种情况时,创建由所表示的通信信道(2端点+协议)连接的插座由呼叫返回。
C API 可能会让您感到困惑,因为两者都称为套接字,但实际上用途不同。在其他一些语言/API 中进行了区分。例如,在 Java 中ServerSocket,它用于等待来电,Socket用于通信。
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |