標題:誰把終端改成了高端口?,作者: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)。