关于Socket

tlc97 2000-09-04 11:46:00
我在使用CientSocket控件时遇到一问题:
ClientSocket->Active=true;
ClientSocket->Socket->SendText(S);
但无法触发serversocket控件的onclientwrite事件,
请问各位高手:
如何接收到以上语句的字符S?
...全文
170 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
59214关注!
sztanj 2000-09-05
  • 打赏
  • 举报
回复
读客户端发来的信息应该是OnClientRead事件,
OnClientWrite事件时服务端发给客户端信息时触发的。
FengSC 2000-09-05
  • 打赏
  • 举报
回复
对不起!没有看仔细你的提问.ServerSocket端的读事件应该是OnClientRead事件.下面给出完整的Client、Server端程序.供参考.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ClientSocket1->Open(); //请求连接
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{
ServerSocket1->Open(); //打开Server
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Write(TObject *Sender,
TCustomWinSocket *Socket)
{
Socket->SendText("Help me."); //Client发送文字到Server
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Label1->Caption = Socket->ReceiveText();//Server从Client接收文字
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientWrite(TObject *Sender,
TCustomWinSocket *Socket)
{
Socket->SendText("Ok"); //Server发送文字到Client
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
TCustomWinSocket *Socket)
{
Label2->Caption = Socket->ReceiveText();//Client收到文字后关闭.
Socket->Close();
}
//---------------------------------------------------------------------------
mirong 2000-09-05
  • 打赏
  • 举报
回复
socket的使用,在onconnet事件中用以下语句
//模块级的全局变量
//TCustomWinSocket *cSocket;
cSocket=Socket;
//然后你可在函数里使用cSocket
//cSocket->SendText(AnsiString str);
tlc97 2000-09-04
  • 打赏
  • 举报
回复
很感谢你再次回贴,我是用stNonBlocking属性,且我在clientsovket的onconnected
事件中用:Socket->SendText(s);SevverSocket能在OnclientConnect中用socket->ReceiveText()收到,在函数里就不行.
FengSC 2000-09-04
  • 打赏
  • 举报
回复
用事件触发方式只能当TServerSocket的ServerType为stNonBlocking时才会实现.
如果为stThreadBlocking它能触发指定线程中的Execute方法.

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧