很白痴的问题,谁先答对分就给谁(20分)

  • 主题发起人 主题发起人 fu_xiang_yu
  • 开始时间 开始时间
F

fu_xiang_yu

Unregistered / Unconfirmed
GUEST, unregistred user!

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var reqcode:pchar; reqcodestr:string;
begin
getmem(reqcode,30);
Socket.ReceiveBuf(reqcode^,30);<--为什么这里用serversocket1.socket.....就会出错
reqcodestr:=reqcode;
showmessage(reqcodestr);
freemem(reqcode);
end;
 
因为serversocket1.socket是用来监听的端口,不是用来发送数据的,
在每一个client连上sever时都会创建一个新的socket用来和每个client
传送数据,在ServerSocket1ClientRead事件中,用Socket参数来指定与当前
是哪一个socket可读。
 
我看了一下帮助,也是这么想,不过不敢确定
你这么说真是太好了
 
这样吗?
我觉得是两个类型不匹配的原因呢。
 
>>>>教父
两个类型是不同,TServerSocket.Socket的类型是TServerWinSocket,而参数Socket的类型
是TCustomWinSocket,但是TServerWinSocket是继承自TCustomWinSocket的。所以不是两个
类型不匹配造成的。
 
后退
顶部