首先,這個combobox1必須能顯示多個ip,我們定一個變量y來累加combobox1.items[y],
var y:integer;
我們的思路如下,當serversocket活動的port(端口)收到基於tcp/ip協議的連結請求時候,返回對方的ip值,傳遞給combobox顯示出來。由button1控制serversocket的激活,也就是打開關閉端口。
我們在serversocket的on clIEntconnect事件中加入一下代碼
procedure tform1.serversocket11clIEntconnect(sender: tobject;
socket: tcustomwinsocket);
begin
combobox1.items.insert(y,'');//加入一條空紀錄
combobox1.items[y]:=socket.remoteaddress;//獲取對方的ip
label1.text:='共捕獲'+inttostr(y+1)+'個ip';//用一個標簽來顯示一共抓了多少ip
y:=y+1;//計數變量加1
socket.close;
end;
現在,將button1的caption屬性設置為 '開始',在它的單擊事件中加入以下代碼
procedure tform1.speedbutton7click(sender: tobject);
begin
if speedbutton7.caption='開始' then
begin
serversocket11.port:=80;//這句可以在serversocket屬性中設定,捕獲浏覽器的連接
serversocket11.active:=true;//激活端口
speedbutton7.caption:='停止';
end
else
begin
serversocket11.active:=false;//關閉端口
speedbutton7.caption:='開始';
combobox1.clear;//結束捕獲,清空歷史信息
y:=0;//計數變量復位
end;
end;