要重用的埠是tomcat的預設http埠8080。
源**:
#include #pragma comment(lib, "ws2_32.lib")
#define listen_port 8080
int main()
此時,已經啟動tomcat,可以通過來訪問tomcat主頁。
執行此程式時,如果沒有重用埠,繫結到8080埠會失敗。但是因為此程式重用了埠,所以還是成功的。
用netstat看一下:
d:\>netstat -an | find "8080"
tcp 0.0.0.0:8080 0.0.0.0:0 listening
tcp 127.0.0.1:8080 0.0.0.0:0 listening
d:\>
看到有2個8080在監聽。
case 1:此時如果用瀏覽器開啟tomcat主頁,是打不開的,會顯示白色的頁面,而且程式已經結束執行。
case 2:此時如果用nc去連,是可以開啟cmdshell的:
d:\>nc 127.0.0.1 8080
microsoft windows xp [版本 5.1.2600]
d:\my documents\visual studio 2010\projects\hacker\05_4>dir
dir 驅動器 d 中的卷是 本地磁碟
卷的序列號是 6c97-9e44
d:\my documents\visual studio 2010\projects\hacker\05_4 的目錄
2013-07-22 22:55 .
2013-07-22 22:55 ..
2013-07-22 23:09 1,011 05_4.cpp
2013-07-22 22:53 3,916 05_4.vcxproj
2013-07-22 22:53 942 05_4.vcxproj.filters
2013-07-22 22:36 143 05_4.vcxproj.user
2013-07-22 23:09 release
4 個檔案 6,012 位元組
3 個目錄 34,079,305,728 可用位元組
d:\my documents\visual studio 2010\projects\hacker\05_4>exit
exit
d:\>
套接字 實現埠重用
假如埠被socket使用過,並且利用socket.close 來關閉連線,但此時埠還沒有釋放,要經過乙個time wait的過程之後才能使用,這是tnn的相當煩銀的,為了實現埠的馬上覆用,可以選擇setsockopt 函式來達到目的。以下是網上找到的一篇文章的一小段相關例子,試用之後,相當有效果,特...
埠重用 如何解除bind繫結
我找的關於setsockopt的資料 1.如果在已經處於 established狀態下的socket 一般由埠號和標誌符區分 呼叫 closesocket 一般不會立即關閉而經歷time wait的過程 後想繼續重用該socket bool breuseaddr true setsockopt s,...
學習筆記 socket關於埠重用的學習
這兩天想搭建乙個c2c伺服器的模型,一開始是想用c寫,結果c的各種細節寫的人太煩躁了,就換成了python,原來n百行的 瞬間變成了幾十行,世界一下子就清淨了 這是後話,此文主要是記錄一下埠重用的問題。之前寫socket經常在除錯時候,每次重啟服務端都會在bind時候報錯 埠被占用 這是因為bind...