procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket.Host:=hostedit.Text;
ClientSocket.Port:=strtoint(portedit.Text);
ClientSocket.Open;
sleep(100); //这里无论多少时间都一样
ClientSocket.Socket.SendText('abcd');
end;
服务器端始终收不到abcd
我用sniffer查看了发现没有发过abcd的包但是
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket.Socket.SendText('abcd');
end;
就可以收到
用sniffer发现有包
begin
ClientSocket.Host:=hostedit.Text;
ClientSocket.Port:=strtoint(portedit.Text);
ClientSocket.Open;
sleep(100); //这里无论多少时间都一样
ClientSocket.Socket.SendText('abcd');
end;
服务器端始终收不到abcd
我用sniffer查看了发现没有发过abcd的包但是
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket.Socket.SendText('abcd');
end;
就可以收到
用sniffer发现有包
ClientSocket应该有Connect事件,在里面判断是否连接成功,如果成功,则发送
不过bdmh的建议不错,我一直钻了牛角
timeout: integer;
begin
ClientSocket.Host:=hostedit.Text;
ClientSocket.Port:=strtoint(portedit.Text);
ClientSocket.Open;
timeout := 0;
while not ClientSocket.Socket.Connected and (timeout< 500) do
begin
Application.ProcessMessages;
Sleep(1);
inc(timeout);
end;
if ClientSocke.Socket.Connected then begin
ClientSocket.Socket.SendText('abcd');
end;
end;//Open不等于已经建立连接了
ClientSocket.Port:=strtoint(portedit.Text);
ClientSocket.Open;
sleep(100); //这里无论多少时间都一样
Application.ProcessMessages;
ClientSocket.Socket.SendText('abcd');
if clientSocket.connected then
begin
clientSocket.sendText('asdf');
end;