procedure TForm1.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
sReviceMsg :String;
begin
sReviceMsg:= Socket.ReceiveText;
Showmessage('测试成功!');
if ClientSocket1.Socket.Connected then begin
ClientSocket1.Socket.SendText(sReviceMsg);
end;
end;
为什么这样可以成功ClientSocket1.Socket.SendText(sReviceMsg);而不加Showmessage('测试成功!'); 却发送不了呢....
解决方案 »
- 求助:delphi中我想把数据写入文本文件,如何定义文本变量类型?
- 关于在一个procedure中调用另一个procedure的问题~~~
- 一个TList指针问题.昨天弄了一晚上都没有办法搞定,请高手帮忙.
- 帮我看一下下面的操作xml的语句是不是有错
- 请教有关内存操作的问题,谢谢帮助!
- 主从表问题,分不够再加
- 中间件开发的朋友们大家交个朋友吧,留下你的QQ、Email!以便大家交流!
- 规范化的问题
- 数据库的连接
- 请问在DELPHI下怎么比较两个文件是否一样?
- 请问如何在StringGrid里面只选中一个Cell(只Highlight一个Cell)
- Delphi中怎么换桌面(实时的+可用非BMP图片)
在这里根本没用,因为sReviceMsg:= Socket.ReceiveText;无论是收到消息还是没有收到 Showmessage('测试成功!');
这句都会执行
ClientSocket1.Socket.SendText(sReviceMsg);
end;
这句是不需要加判断的
ClientSocket 在封装的时候已经做过处理的
所以你直接 ClientSocket1.Socket.SendText(sReviceMsg);
就可以了甚至你可以
ClientSocket1.Socket.SendText(Socket.ReceiveText);
所以你可以直接
Socket.SendText(Socket.ReceiveText);不需要 ClientSocket1.
你不会是在一个程序上 有 Server 又有 Client 吧。。
var
sReviceMsg :String;
iWait : Integer;
begin
sReviceMsg:= Socket.ReceiveText;
iWait := 0;
while not ClientSocket1.Socket.Connected and (iWait < 500) do
begin
Application.ProcessMessages;
Sleep(10);
inc(iWait);
end;
if ClientSocket1.Socket.Connected then begin
ClientSocket1.Socket.SendText(sReviceMsg);
end;
end;
首先ServerSocket接受本机的一个网络连接, 然后利用ClientSocket 转发到另一台电脑上..