非阻塞方式的通信问题(20分)

  • 主题发起人 主题发起人 RoninHao
  • 开始时间 开始时间
R

RoninHao

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是delphi自带的TTcpClinet和TTcpServer控件
客户端用非阻塞方式,服务器端用阻塞方式

我在客户端的这么写的
TCPCont.Active := true;
TCPCont.Connect ;

然后再客户端TTcpClient的OnConnect事件写如下
var
info : AUTH_CONN;
begin
info.nflag := 1;
ConVert(Edt_Name.Text,info.sID);
ConVert(Edt_Psw.Text,info.sPsw);
TCPCont.SendBuf(info,sizeof(info));
end;

在Server端的OnAceept事件中写了如下代码
var
info : AUTH_CONN;
begin
info.nflag := 3;
ClientSocket.SendBuf(info,sizeof(info));
end;

然后再在客户端OnReceive时间写
var
info : AUTH_CONN;
begin
if (info.nflag = 3) then
InsertMsg('连接至防火墙');
end;

但是运行程序的时候结果是服务器端收到连接请求,并发送,但是客户端似乎没有收到,
没有跳进OnRecieve事件中;
这是为什么呢??
 
这两个控件的接收数据部分需要自己写代码
 
可以给个例子么?
 
后退
顶部