客户端发送线程:
Procedure TThreadSend.Execute;
Begin
While true Do
Begin
Sleep (10) ;
If Not Terminated Then
Begin
If assigned (CalTwoDimentionRiverNet) Then
Begin
Synchronize (SendMsg) ;
End;
End; //if
End; //while
End;
客户端接收线程:
Procedure TThreadRev.Execute;
Var
strpacklen : String;
PackLen : Integer;
Begin
While true Do
Begin
If Not Terminated Then
Begin
If assigned (CalTwoDimentionRiverNet) Then
Begin
If Not CalTwoDimentionRiverNet.Client.Connected Then
Begin
sleep (10) ;
Continue;
End;
strpacklen := CalTwoDimentionRiverNet.Client.ReadString (2) ;
//消息长度
PackLen := RevertInteger (strpacklen) ;
CalTwoDimentionRiverNet.RevMsg := CalTwoDimentionRiverNet.Client.ReadString (PackLen-2) ;
Synchronize (DecodeMsg) ;
End; // if assigned ( GPSDevice ) then
End; // if not Terminated then
End; //while
End;
服务器端接收是通过Server.OnExecute事件:
Procedure TLogicalRelation.ServerExecute (AThread : TIdPeerThread) ;
Var
strpacklen : String;
PackLen : Integer;
Begin
strpacklen := AThread.Connection.ReadString (2) ;
//消息长度
PackLen := RevertInteger (strpacklen) ;
TempRevMsg := AThread.Connection.ReadString (PackLen-2) ;
TempClientIP := AThread.Connection.Socket.Binding.PeerIP;
AThread.Synchronize (DecodeMsg) ;
End;
服务器端发送同客户端发送
Procedure TThreadSend.Execute;
Begin
While true Do
Begin
Sleep (10) ;
If Not Terminated Then
Begin
If assigned (CalTwoDimentionRiverNet) Then
Begin
Synchronize (SendMsg) ;
End;
End; //if
End; //while
End;
客户端接收线程:
Procedure TThreadRev.Execute;
Var
strpacklen : String;
PackLen : Integer;
Begin
While true Do
Begin
If Not Terminated Then
Begin
If assigned (CalTwoDimentionRiverNet) Then
Begin
If Not CalTwoDimentionRiverNet.Client.Connected Then
Begin
sleep (10) ;
Continue;
End;
strpacklen := CalTwoDimentionRiverNet.Client.ReadString (2) ;
//消息长度
PackLen := RevertInteger (strpacklen) ;
CalTwoDimentionRiverNet.RevMsg := CalTwoDimentionRiverNet.Client.ReadString (PackLen-2) ;
Synchronize (DecodeMsg) ;
End; // if assigned ( GPSDevice ) then
End; // if not Terminated then
End; //while
End;
服务器端接收是通过Server.OnExecute事件:
Procedure TLogicalRelation.ServerExecute (AThread : TIdPeerThread) ;
Var
strpacklen : String;
PackLen : Integer;
Begin
strpacklen := AThread.Connection.ReadString (2) ;
//消息长度
PackLen := RevertInteger (strpacklen) ;
TempRevMsg := AThread.Connection.ReadString (PackLen-2) ;
TempClientIP := AThread.Connection.Socket.Binding.PeerIP;
AThread.Synchronize (DecodeMsg) ;
End;
服务器端发送同客户端发送