简单问题,将clientsocket收到一切数据都通过serversocket转发.(100分)

  • 主题发起人 主题发起人 Dale46
  • 开始时间 开始时间
D

Dale46

Unregistered / Unconfirmed
GUEST, unregistred user!
目的:做一个端口映射程序.

clientsocket收到什么,serversocket就发送什么

源代码:
procedure tform1.onread(Sender: TObject;Socket: TCustomWinSocket);
begin
serversocket1.Socket.Connections[0].SendText(socket.receivetext);
end;

发现这个只能针对clientsocket收到的为字符串, 如果clientsocket收到的既包含字符串
也包含二进制数据呢? 我不熟悉stream操作,不知道该如何写这段代码呢? 谢谢
 
这个应该是万能的吧:

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
n:Integer;
Buf:PChar;
begin
n:=Socket.ReceiveLength;
GetMem(Buf,n+1);
Socket.ReceiveBuf(Buf,n);
ServerSocket1.Socket.Connections[0].SendBuf(Buf,n);
FreeMem(Buf);
end;
 
接受答案了.
 
后退
顶部