我在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.
问题是每次都要点击两次按钮,才能接收到消息,为什么,高手指点!!
解决方案 »
- 获得Listview1.Items.Count,结果总是0
- 急:ShowModal的问题
- 雪地全裸跪求:WindowsMediaPlayer 控件的获取视频长度问题
- 动态索引如何实现? dataset . addindex (...)
- 以下这段Word VBA代码如何转换到Dephi代码进行调用,该如何改?请达人指点一下
- 我宣布:项有建代理版主期间本亲王暂停在水园的一切活动!
- 我对需求分析操作的一些心得体会,来与大家探讨
- DELPHI与ACESS中图片处理的问题!!!HELP!!!
- 高分求助,如何实现十个固定数据的乱序输出,而且每次的输出的数据都不一样?
- 怎样发布基于Microsoft SQL Server的程序,谢谢各位高手,快来解决,本人急!
- 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后不管有没有结果都会立刻执行下面的语句.改成阻塞式后只有一个执行有结果了才会返回