相关疑难解决方法(0)

端口和套接字有什么区别?

这是我组织中的一位软件工程师提出的问题.我对最广泛的定义感兴趣.

sockets port networking

880
推荐指数
23
解决办法
41万
查看次数

socket API accept()函数如何工作?

套接字API是TCP/IP和UDP/IP通信的事实标准(即我们所知的网络代码).然而,它的核心功能之一,accept()有点神奇.

借用半正式定义:

在服务器端使用accept().它接受从远程客户端创建新TCP连接的接收传入尝试,并创建与此连接的套接字地址对关联的新套接字.

换句话说,accept返回一个新的套接字,服务器可以通过该套接字与新连接的客户端进行通信.旧套接字(在其accept上调用)保持打开状态,在同一端口上侦听新连接.

accept工作怎么样?它是如何实现的?这个话题有很多混乱.许多人声称接受打开一个新端口,并通过它与客户沟通.但这显然不是真的,因为没有新的端口被打开.你实际上可以通过同一个端口与不同的客户端进行通信,但是如何?当多个线程调用recv同一个端口时,数据如何知道去哪里?

我想这是客户端地址与套接字描述符相关联的内容,每当数据通过时recv它被路由到正确的套接字,但我不确定.

对这种机制的内部运作进行彻底的解释是很好的.

sockets networking tcp

118
推荐指数
3
解决办法
5万
查看次数

标签 统计

networking ×2

sockets ×2

port ×1

tcp ×1