我用 TServerSocket,TClientSocket (D7)来发送与接收信息,
希望功能是:每次发送信息前 ClientSocket.open, SendText 后 ClientSocket.Close;
可奇怪的是:程序启动后的第一次发送总不能成功,之后的每次发送都能成功
。不知道为什么。服务器端(stNonBlocking;Port := 3369):OnClientRead 事件
procedure TfrmMonitor.srvMonitorClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Len:integer;
MfromClient,: string;
begin
MfromClient := Socket.ReceiveText;
Beep;
end;//Client 端
procedure TfrmClient.btnMtoSendClick(Sender: TObject); //发送信息按钮
var
MtoSend: string;
begin cltMtoSend.Address := '192.168.0.222';
cltMtoSend.Port := 3369;
cltMtoSend.Open; MToSend := 'Test! Test!';
cltMtoSend.Socket.SendText(MtoSend); cltMtoSend.Close;
end;
希望功能是:每次发送信息前 ClientSocket.open, SendText 后 ClientSocket.Close;
可奇怪的是:程序启动后的第一次发送总不能成功,之后的每次发送都能成功
。不知道为什么。服务器端(stNonBlocking;Port := 3369):OnClientRead 事件
procedure TfrmMonitor.srvMonitorClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Len:integer;
MfromClient,: string;
begin
MfromClient := Socket.ReceiveText;
Beep;
end;//Client 端
procedure TfrmClient.btnMtoSendClick(Sender: TObject); //发送信息按钮
var
MtoSend: string;
begin cltMtoSend.Address := '192.168.0.222';
cltMtoSend.Port := 3369;
cltMtoSend.Open; MToSend := 'Test! Test!';
cltMtoSend.Socket.SendText(MtoSend); cltMtoSend.Close;
end;
解决方案 »
- 求fastreport3
- 当Word打开一个文件后,再最小化,Windows桌面最下方的工具条会显示“文挡-Word”而不是“Word”,这是怎么实现的呢?
- 在StringGrid的一列里都有数据,怎样使光标上下列移动时,有五位,让第三位的位置不变?如下所示
- 求助关于结束依附程序的方法
- 怎么获得网上邻居的磁盘空间大小?
- 关于一个出错信息的疑惑
- 程序运行BDE初始化错误 代号$3E06?怎么解决?
- D6里为什么LABEL里的中文总是少半个?
- 熟悉TDeviceMode的高手请帮我看一下程序,是有关设置打印机信息的。
- 有关DBMemo控件的使用问题!高手请进!!!
- 怎样用程序控制firebird的重新启动,在nt和Linux平台下.
- ■■■ 五子棋人机对弈1.1
var
m: integer
MtoSend: string;
begin cltMtoSend.Address := '192.168.0.222';
cltMtoSend.Port := 3369;
cltMtoSend.Open; m := 0;
while m = 0 do
Delay(1000); //自定义延时函数
MToSend := 'Test! Test!';
m := cltMtoSend.Socket.SendText(MtoSend);
Memo1.Lines.Add('返回代码:' + IntToStr(m));
end;
cltMtoSend.Close;
end;
返回代码一直是零,但如果之前已经联接并断开过一次就正常.
cltMtoSend.Socket.SendText(MtoSend);放在OnConnect事件里发送。