|

楼主 |
发表于 2008-5-13 10:41:24
|
显示全部楼层
就是delphi6 ,
就是delphi6+sp2 ,上次我使用TTCPServer,TTCPClient控件做为第三方控件,发现有客户端接收不到Server消息的情况,就改用ServerSocket,ClientSocket在实现。代码在Delphi6中是成功的。
但是若还是把Delphi6中的ServerSocket做第三控件引入x3,则应该会出类已经存在的错误。
x3客户端代码:
procedure TDemoClient.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
MsgRecv,msgCmd,msgContent,msgSendData:string;
iLength:Integer;
begin
try
begin
MsgRecv:=Socket.ReceiveText;
Memo2.Lines.Add(MsgRecv);
//取前10位,得到协议标志符
msgCmd:=StringUtils.Copy(MsgRecv,1,10);
if msgCmd=MP_ACCEPT then
……。
end;
Delphi Server的代码:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
msgr,msgCmd,msgContent,xmlResult:string;
iLength,BuffSize:Integer;
begin
try
begin
//接收数据
msgr:=Socket.ReceiveText;
memo1.Lines.Add(msgr);
//取前10个字符
msgCmd:=Copy(msgr,1,10);
if msgCmd=MP_CONN then
begin
memo2.Lines.Add ('服务器准备接收!');
Socket.SendText(MP_ACCEPT); //发数据给Client
两边都是使用noBlocking,目前情况是ServerSocket可以接收Client消息,但是
Socket.SendText(MP_ACCEPT); //发数据给Client,上面的Client函数无响应。 |
|