我现在遇到了ClientSocket的一个问题,我想在ClientSocket连接上之后就随即发送一个命令,但是不知道把这个发送命令写到哪儿地方,怎样来实现。我发送后对方老是收不到,怎么回事。
下面是我的代码:
begin
str1:='192.168.1.252';
if trim(str1)<>'' then
begin
ClientSocket1.Close;
ClientSocket1.Host:= str1;
clientsocket1.Port:=12;//server port
ClientSocket1.ClientType := ctNonBlocking;
try
clientsocket1.open;
clientsocket1.Socket.SendText('命令数据');
except
end;
end;
但是clientsocket1.Socket.SendText('命令数据');这个数据对方总是收不到,如果将这个发送数据写到其他按钮事件里面对方就能收到数据,这种情况怎样来解决呀。
我现在就是想在Socket连接上之后,就立即发送一个数据。高手帮忙找一个办法吧。谢谢了!!!
下面是我的代码:
begin
str1:='192.168.1.252';
if trim(str1)<>'' then
begin
ClientSocket1.Close;
ClientSocket1.Host:= str1;
clientsocket1.Port:=12;//server port
ClientSocket1.ClientType := ctNonBlocking;
try
clientsocket1.open;
clientsocket1.Socket.SendText('命令数据');
except
end;
end;
但是clientsocket1.Socket.SendText('命令数据');这个数据对方总是收不到,如果将这个发送数据写到其他按钮事件里面对方就能收到数据,这种情况怎样来解决呀。
我现在就是想在Socket连接上之后,就立即发送一个数据。高手帮忙找一个办法吧。谢谢了!!!
解决方案 »
- 多线程与数据库,困扰我好几天,我都快疯,请高手给指点一下!
- 郁闷,问几个函数。。
- dbchart的使用问题
- ActiveList组件提供了应用程序任务的什么功能?
- 小弟初学delphi三个星期,推出第一个小小工具,请各位大虾指教.
- 怎么访问ISAPI和CGI类型的WEB Service?
- 请教:如何让DatetTimePicker控件同时显示日期和时间?
- 一位浙大教授的演讲--什么是国富民强
- 我绝望了, csdn 上没有高手
- mysql的delete调用不了啊
- 使用ADODataSet的问题,很弱!
- 请问[error] rlink32: error opening file "frmMain.dfm"是什么意思? 应该如何解决?谢谢!!
把上面这句放在OnConnect事件中写。
你好!我按照你说的将clientsocket1.Socket.SendText('命令数据');
这句放到OnConnect事件中时,对方也是收不到的,怎么回事呀?你这样用过吗?你最好自己再试试,我刚试过的。谢谢你请尽快回复!!
clientsocket1.open;
sleep(500);//如果还不行,加大一下参数值
clientsocket1.Socket.SendText('命令数据');
你的这种方法
clientsocket1.open;
sleep(500);//如果还不行,加大一下参数值
clientsocket1.Socket.SendText('命令数据');
我已经试过了还是不行,不知道该怎么办呀?帮忙呀!
while no clientsocket1.socket.connected do Application.processmessages;//等待连接
clientsocket1.Socket.SendText('命令数据');
这方法肯定成功,本人用socket做过dll.To halfdream(哈欠):
怎么你没把问题说完整?教师节快乐!呵呵
clientSocket.close;
ClientSocket.open;
再在ClientSocket的onconnect事件中写
socket.SendText(数据);
这是一定能成功的,我试过很多次都成功了
result:string;
begin
ClientSocket1:= TClientSocket.Create(nil);
ClientSocket1.Host:='128.8.75.65';
ClientSocket1.Port:=1024;
ClientSocket1.Open;
while not clientsocket1.socket.connected do
Application.processmessages;//等待连接
ClientSocket1.Socket.SendText('88480666');
// sleep(1000);
label1.Caption:=ClientSocket1.Socket.ReceiveText;
while trim(label1.Caption)='' do //没有收到消息,则延时再收
label1.Caption:=ClientSocket1.Socket.ReceiveText;
ClientSocket1.Close;
FreeAndNil(ClientSocket1);
这样的话又能发又能收!!
str1:='192.168.1.252';
if trim(str1)<>'' then
begin
ClientSocket1.Close;
ClientSocket1.Address:= str1;
clientsocket1.Port:=12;//server port
ClientSocket1.ClientType := ctNonBlocking;
try
clientsocket1.open;
clientsocket1.Socket.SendText('命令数据');
except
end;
end;