同时监听的意思是同一时刻让tcp的某一端口和udp的同一数值的端口同时处于listening状态。
有的网友说udp的不能叫监听,应该有个其他的叫法。我认为都可以,只要把意思表达出来即可。
tcp监听办法:
SOCKET sock = socket(TCP)
sockaddr_in sin
sin.port = htons(xxx)
bind(sock, sin)
listen(sock)
这样就进入了监听状态,在xxx端口,接下来可以accept了
udp监听办法
SOCKET sock = socket(UDP)
sockaddr_in sin
sin.port = htons(xxx)
bind(sock, sin)
这样就进入了监听状态,在xxx端口,接下来可以recvfrom和sentto了
一般的,如果有另一个请求(无论是否在同一个进程,无论是tcp还是udp)也监听xxx端口,会在bind处报错(一般情况,具体不展开了)
- 注意几点:
1、端口不是物理概念,仅仅是协议栈中的两个字节
2、TCP和UDP的端口完全没有任何关系,完全有可能又有一种XXP基于IP,也有端口的概念,这是完全可能的。
3、TCP和UDP传输协议监听同一个端口后,接收数据互不影响,不冲突。因为数据接收时时根据五元组{传输协议,源IP,目的IP,源端口,目的端口}
判断接受者的。
网友评论