萬盛學電腦網

 萬盛學電腦網 >> 電腦入門 >> 端口數能否超過65535 電腦技術吧

端口數能否超過65535 電腦技術吧

 

標題:誰把終端改成了高端口?,作者:ddoop。

碰到一棒子的服務器~3389端口變成了78650

通常服務器的端口都是1-65535他來個頂你肺啊78650。。。情況如下


害我都連接不上桌面.奇怪的是~~query user的時候居然發現如下


你說怪不怪。。。把端口改回來後壓力是沒有了~可為什麼我連接不上~~他就能連接上呢?

相關資料如下:

這種問題我還真是頭一次聽說,經查閱相關資料得知:

看看專家告訴你答案:

哈哈 tcp port 大小為 16 bit 是否能超過 65535 可想而知啦!!

不過 Windows 會有一個問題 telnet www.sina.com.cn 65616 大家可以測試一下 !

這實際上是訪問 www.sina.com.cn 的 80 端口,為什麼呢?如果想不出來就回學校重新學去!

注:65616 - 65536 = 80

以下是引用片段:

main() 

unsigned short int tcp_port=65616; 
printf("%u",tcp_port); 
}

 

有些軟件,比方說 Windows 的 telnet,可能用了 32 bit 的數據類型記錄 port,這樣 port 表面上看到是可以超過 65535。

但是 tcp header 明確定義了 tcpport 為 16 bit,那即便某些應用程序使用了 32 bit 的數據類型,最終結果也是被強制轉換。

簡單的來說,就是:

1、在應用程序裡邊可以使用4字節或更多字節來儲存端口號。

2、當調用了系統的tcp/ip通訊之後,系統底層強制將大於65536的端口轉換回正常范圍。

3、並且在轉換過程中,不會返回任何錯誤信息,一切都悄然進行了,所以應用層的程序不會有任何特別反應,這一切都在系統底層悄然完成了。

4、轉換的方式為:端口號 - 65536 = ?,問號處既是轉換結果。

5、如果轉換後的端口還超過65535呢?那就繼續轉換,直到小於等於65535為止,所以 telnet www.baidu.com 131152 也是可以完美執行的,(65536 + 65536 + 80 = 131152)。

    copyright © 萬盛學電腦網 all rights reserved