同時監(jiān)聽的意思是同一時刻讓tcp的某一端口和udp的同一數(shù)值的端口同時處于listening狀態(tài)瓢阴。
有的網(wǎng)友說udp的不能叫監(jiān)聽嗤练,應該有個其他的叫法。我認為都可以,只要把意思表達出來即可丐怯。
tcp監(jiān)聽辦法:
SOCKET sock = socket(TCP)
sockaddr_in sin
sin.port = htons(xxx)
bind(sock, sin)
listen(sock)
這樣就進入了監(jiān)聽狀態(tài),在xxx端口他膳,接下來可以accept了
udp監(jiān)聽辦法
SOCKET sock = socket(UDP)
sockaddr_in sin
sin.port = htons(xxx)
bind(sock, sin)
這樣就進入了監(jiān)聽狀態(tài)响逢,在xxx端口绒窑,接下來可以recvfrom和sentto了
一般的棕孙,如果有另一個請求(無論是否在同一個進程,無論是tcp還是udp)也監(jiān)聽xxx端口些膨,會在bind處報錯(一般情況蟀俊,具體不展開了)
- 注意幾點:
1、端口不是物理概念订雾,僅僅是協(xié)議棧中的兩個字節(jié)
2肢预、TCP和UDP的端口完全沒有任何關系,完全有可能又有一種XXP基于IP洼哎,也有端口的概念烫映,這是完全可能的。
3噩峦、TCP和UDP傳輸協(xié)議監(jiān)聽同一個端口后锭沟,接收數(shù)據(jù)互不影響,不沖突识补。因為數(shù)據(jù)接收時時根據(jù)五元組{傳輸協(xié)議族淮,源IP,目的IP凭涂,源端口祝辣,目的端口}
判斷接受者的。