我用ServerSocket1.Socket.Connections[i].SendText(Edit1.text)给已经连接的clientsocket发送了文本消息,然后在Clientsocket1的Read事件里却得不到发送的消息~怎么解决啊~~谢谢~
解决方案 »
- 如何判断控制面板-管理工具-服务中有没有某个服务?delphi
- DELPHI程序能不能在IMAGE控件上让鼠标拉的范围内也有一个框框区域(如图)?而且在画的时候不能消失,且可以看到画的内容,而且前面画的不能消失
- 200高分求教,相同代码,D7编译出来的没问题,D2007编译出来的运行就出错,怎么解决?
- 如何让inputQuery函数输入变成“*”号,请大哥们帮帮忙。
- 300分求!!多线程数据库存储,ACCESS库
- 怎样在用DELPHI做的应用程序中添加功能模块.bpl!加急!!!!!!!!
- 东进语音卡知识?????
- 请教一个动态删除菜单的问题!
- 如何调用外部程序?
- 如何取得远程计算机的MAC地址?
- 以太网控制器直接跟远程PC通过网络传输数据,需要协议吗
- TIdSchedulerOfThreadPool是做什么的?和TIDTCPServer结合有什么用?
procedure TForm1.btnSendClick(Sender: TObject);
Var
len : Word;
Msg : String;
buf : array of char;
begin //前两个字节存放消息体内容长度
Msg := Trim(MemSendMsg.Text);
Len := Length(Msg);
SetLength(buf,Len + 2);
Move(Len,buf[0],2);
Move(Msg[1],buf[2],Len);
ClientSocket.Socket.SendBuf(buf[0],Len + 2)
end;
服务端:
procedure TForm1.btnSendClick(Sender: TObject);
var
i,len:word;
msg:string;
buf:array of char;
begin
msg:=Trim(MemSendMsg.Text);
len:=length(msg);
setlength(buf,len+2); //设置buf长度 //前两个字节存放消息体内容长度
Move(len, buf[0], 2) ; //把消息体内容长度放入前两个字节
Move(msg[1], buf[2], len); //把消息体内容放入包中 从第三个字节开始存放
if SockPool.Count < 1 then Exit;
for i:=0 to SockPool.Count -1 do
try
TCustomWinSocket(SockPool[i]).SendBuf(buf[0], len+2);
except
TCustomWinSocket(SockPool[i]).Close;
SockPool.Remove(SockPool[i]);
end;
end;
ServerSocket1和ClientSocket1 我怎么没有找到呢
楼主的问题是:
TcpServer向TcpClient发送消息,不触发OnRecieveln事件,楼上的是ClientSocket和ServerSocket,不同的。
很奇怪,TcpClient向TcpServer通过Sendln方法没问题,反过来就不行了,接受不到,高手来说下怎么解决。