讨厌啊.....CBuild或delphi中TServerSocket使用threadBlocking模式时(100分)

  • 主题发起人 主题发起人 wyly
  • 开始时间 开始时间
W

wyly

Unregistered / Unconfirmed
GUEST, unregistred user!
我发现客户端必须也要用TSocketStream发送,否则服务器端收不到?大家说说是不是这样!!!!!
那如果我客户端时别的系统。如linux,岂不是没办法了
 
是TWinSocketStream吧,
不过我经常ClientSocket1.Socket.SendBuf(S, Length(S));服务端也没事呀
不然你就winsock.send(ClientSocket1.Socket.SocketHandle, S, lenght(s), 0)
 
是嘛,那我再试试,昨天我用TWinSocketStream就可以,而用SendBuffer就不行。我想
也不应该是这样?
 
我又试了一下:客户端程序如下:
clientSocket->Open();
Label3->Caption = IntToStr(client1->Socket->SendText("ccbbaa"));
clientSocket->Close();

结果很奇怪,第一次调用时发出的数据量为0,第二次调用时发出数据6个字节,服务器正确接收。
第三次发不出,第四次发出6个字节,以此类推。不知道大家有什么看法?为什么这么奇怪
 
你最好把 client1->Socket->SendText("ccbbaa") 写到 ONConnect 事件中,
别以为你Open之后它就一定是打开的,并且对方已经准备好,可以接收数据了.
 
to tianhf:我也发现是这个问题了。
有谁明白borland是怎么判断socket是否断开的?
 
多人接受答案了。
 
后退
顶部