該怎麼切斷某Clinet的連線? |
答題得分者是:hagar
|
phototin
初階會員 發表:13 回覆:30 積分:29 註冊:2002-06-15 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
以下是小弟試的, 您參考看看, 有錯的也給小弟指正。
ServerSocket 部份: procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); var iEndTick: DWord; begin Socket.SendText('Password: '); // 通知 ClientSocket 要輸入 password Application.ProcessMessages; iEndTick := GetTickCount 6000; // 等 6 秒 repeat if Socket.ReceiveText = 'hagar' then begin // 若 ClientSocket 送來的 password 為 hagar 則為正確 showmessage('password ok'); Exit; end; until GetTickCount >= iEndTick; Socket.Close; // 若 6 秒後沒得到正確字串, 則中斷與 ClientSocket 連線 end;ClientSocket 部份: procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin ShowMessage('connect'); end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var sGet: string; begin sGet := Socket.ReceiveText; if sGet = 'Password: ' then begin // 收到要輸入 Password 的字串 showmessage('input password'); Socket.SendText('hagar'); // 這一行測試正確的 password // Socket.SendText('hagar1'); // 這一行測試錯的 password Application.ProcessMessages; end; end; procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin ShowMessage('disconnect'); end;-- Everything I say is a lie. 發表人 - hagar 於 2002/09/25 08:37:41 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |