Delphi IdTcpServer做服务器程序,VB 用winsock开发客户端.
但VB发来的数据(普通字符串)IdTcpServer捕获不到.全部代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPServer1.DefaultPort:=50002;
IdTCPServer1.Active:=True;
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTCPServer1.Active:=False;
end; procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
recvStr:String;
begin
if not AThread.Terminated and AThread.Connection.Connected then
begin
recvStr:=AThread.Connection.ReadLn();
showmessage(recvStr);
End;
end;
end.
////////////////////////////
VB用的winsock.senddata 'TestString'
//////////////////
Delphi的IdTcpserver接收不到数据,如果用IdTcpClient发送,则可以.
将程序换台机器运行,效果一样.
用了一个基于socket写的通用侦听测试程序,能正常接收vb 发送的字符串.
难道VB的Winsock与Delphi的IdTcpServer不兼容吗?
但VB发来的数据(普通字符串)IdTcpServer捕获不到.全部代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPServer1.DefaultPort:=50002;
IdTCPServer1.Active:=True;
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTCPServer1.Active:=False;
end; procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
recvStr:String;
begin
if not AThread.Terminated and AThread.Connection.Connected then
begin
recvStr:=AThread.Connection.ReadLn();
showmessage(recvStr);
End;
end;
end.
////////////////////////////
VB用的winsock.senddata 'TestString'
//////////////////
Delphi的IdTcpserver接收不到数据,如果用IdTcpClient发送,则可以.
将程序换台机器运行,效果一样.
用了一个基于socket写的通用侦听测试程序,能正常接收vb 发送的字符串.
难道VB的Winsock与Delphi的IdTcpServer不兼容吗?
你不是有一个能连接成功能,对端口监控一下,看一下这个能连接通的在建立 连接时,给VB所写的程序回传了什么字节。然后 你可以在在 IdTCPServer的onConnect 事件 给其 回传相同的信息就可以了。