我在delphi7里面导入了clientsocket 和 serversocket,设置如下
clientsocket active false port 5555
serversocekt active true port 5555 其他都是默认代码:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
beginclientsocket1.Address:='192.168.1.100';
clientsocket1.Open;clientsocket1.Socket.SendText('aaaaaaaa');
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
showmessage(socket.ReceiveText);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Open;
end;end.
问题是每次都要点击两次按钮,才能接收到消息,为什么,高手指点!!
clientsocket active false port 5555
serversocekt active true port 5555 其他都是默认代码:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
beginclientsocket1.Address:='192.168.1.100';
clientsocket1.Open;clientsocket1.Socket.SendText('aaaaaaaa');
end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
showmessage(socket.ReceiveText);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Open;
end;end.
问题是每次都要点击两次按钮,才能接收到消息,为什么,高手指点!!
解决方案 »
- delphi操作mysql 向mytable 表里写数据的时候出错
- 为什么服务器端启动后就关闭了
- 我在Panel1里放了几个speedbutton,隐藏几个后,如何实现后面的自动靠前?
- 如何读取16进制文件
- DELPHI开发的三层架构是什么含义?
- 多图层PSD文件特定图层的读取替换问题
- 高难度问题,请教高手!
- 请教高手
- 有高手运用Delphi处理过图象吗?请问在Delphi中能使用小波分析进行图象处理吗?(内空)谢谢!
- 这个问题把我折腾了几天,请各位大虾帮我看看。解决者我一定高分送出,决不食言!
- delphi2007怎么没有ActiveX control向导啊?
- 高分请高手、、clientsockent/serversockent,中socket发送的消息经常收不到怎么办
clientsocket1.Address:='192.168.1.100';
clientsocket1.Open; clientsocket1.Socket.SendText('aaaaaaaa');
你一open就立刻发送,实际上tcp连接需要3次握手,所以你sendtext的时候实际上还没连接上
解决方法是,你把clientsocket1的clinettype设置成阻塞式(ctblocking)就可以了.默认是非阻塞,所以你执行open后不管有没有结果都会立刻执行下面的语句.改成阻塞式后只有一个执行有结果了才会返回