Delphi2010中採用DataSnap的三層網絡架構服務器獲取客戶端ip,端口信息

需要的控件

首先要有 TDSServerModule、 TDSServer、TDSTCPServerTransport;
TDSServerClass、TDataModule;實現上述功能主要控件如下圖所示
這裏寫圖片描述

包含的單元包括

 SysUtils, Classes, 
  DSTCPServerTransport,
  DSHTTPCommon, DSHTTP,
      DSServer, DSCommonServer, Provider, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient;

其中IdTCPConnection單元一定要有。
代碼如下,//符號包含的是主要實現部分;

procedure TServerContainer1.DSServer1Connect(
  DSConnectEventObject: TDSConnectEventObject);
var
ClientConnection: TIdTCPConnection;

begin
//=================================================
if DSConnectEventObject.ChannelInfo <> nil then
begin
  ClientConnection := TIdTCPConnection(DSConnectEventObject.ChannelInfo.Id);

  FormMain.ClientID := DSConnectEventObject.ChannelInfo.Id;
  FormMain.ClientIP := ClientConnection.Socket.Binding.PeerIP +
    ':' + IntToStr(ClientConnection.Socket.Binding.PeerPort);
  FormMain.ServerIP := ClientConnection.Socket.Binding.IP + ':' +
    IntToStr(ClientConnection.Socket.Binding.Port);
  //=========================================================
  FormMain.bsSkinMemo1.Lines.Clear;
  FormMain.bsSkinMemo1.Lines.Add('客戶端ID號:'+IntToStr(FormMain.ClientID));
  FormMain.bsSkinMemo1.Lines.Add('客戶端IP號:'+FormMain.ClientIP);
  count:=count+1;
  FormMain.StatusBar1.Panels[0].Text:='同時在線人數'+IntToStr(count);
end;

end;
發佈了58 篇原創文章 · 獲贊 22 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章