之前一直有一個疑問,SOCKET ACCEPT後產生的新端口端口號和原來LISTEN時候的端口號是一致的嗎?經過試驗的確是一致的,那麼一致的情況下又怎麼區分數據呢?
原來我一直忽略了SOCKET的標識,也就是他的身份證。一個SOCKET的標識是一個五元組(服務端IP,服務端端口號,客戶端IP,客戶端端口號,所用協議),而我們可以理解,在LISTEN的時候指定了服務端IP,服務端端口號和所用協議,但是客戶端IP和客戶端端口號是通配符。在ACCEPT之後客戶端IP和端口號是建立連接的客戶端相應的數據,所以ACCEPT和LISTEN的這兩個數據的不同導致了SOCKET的身份證不同,所以他們倆是不同的兩個SOCKET,但是共用同一個服務器端口號。