use*_*732 2 sockets networking network-programming tcp
我查了BSD代码,但在某处迷路了:(
我想检查的原因是这样的:
TCP RFC(http://www.ietf.org/rfc/rfc793.txt )sec 2.7状态:
"为了在每个TCP中提供唯一的地址,我们将标识TCP的互联网地址与端口标识符连接起来,以创建一个套接字,该套接字在连接在一起的所有网络中都是唯一的.连接由两端的套接字完全指定. "
这是什么意思:socket = local(ip + port)?
如果是,那么Unix的accept函数返回一个新的套接字描述符.是否意味着创建了一个新套接字(反过来又创建了一个新端口)来响应客户端请求?
PS:我是网络编程的新手.
[更新]我理解我读到的内容@ 套接字API accept()函数如何工作?.我唯一的疑问是:如果socket =(本地端口+本地IP),那么新的套接字将意味着同一IP的新端口.通过这个逻辑,accept返回一个新的套接字(因此创建了一个新的端口).所以所有发送都应该通过这个新端口发生.我在这里理解的是正确的吗?
你大多是正确的.当您accept()创建一个新套接字并且侦听套接字保持打开以允许更多传入连接但新套接字使用与侦听套接字相同的本地端口号.
连接由5元组定义:protocol,local-addr,local-port,remote-addr,remote-port.
因此,每个接受的连接都是唯一的,即使它们都共享相同的本地端口号,因为远程ip /端口总是不同的.侦听套接字没有远程ip/port,因此也是唯一的.