CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

用TWinSocketStream接收不到数据

楼主chenqp()2001-11-16 12:16:04 在 C++ Builder / 基础类 提问

ClientSocket用阻塞方式,thread中创建,  
  TClientSocket   *pClientSocket=new   TClientSocket(NULL);  
          pClientSocket->Address="127.0.0.1";  
          pClientSocket->Port=7500;  
          pClientSocket->ClientType=ctBlocking;  
         
          pClientSocket->Active=true;  
   
  void   __fastcall   socketthread::Execute()  
  {  
          //----   Place   thread   code   here   ----  
            TClientSocket   *pClientSocket=new   TClientSocket(NULL);  
          pClientSocket->Address="127.0.0.1";  
          pClientSocket->Port=7500;  
          pClientSocket->ClientType=ctBlocking;  
          pClientSocket->Socket->ClientType=ctBlocking;  
          pClientSocket->Active=true;  
   
  while(!Terminated)  
  {  
          if(pClientSocket->Active)  
          {  
                  const   int   nBufferCount=2000;  
                  char   cBuffer[nBufferCount];  
                  TWinSocketStream   *pStream;  
   
                  try  
                  {  
                          pStream   =   new   TWinSocketStream(pClientSocket->Socket,   4000);  
   
                          try  
                          {  
   
                                  memset(cBuffer,0,nBufferCount);  
                                  pStream->WaitForData(4000);  
                                          //char   quest[]="wait";  
                                          //pStream->Write(quest.strlen(quest));  
                                          int   i=pStream->Read(cBuffer,strlen(cBuffer));  
                                          Form1->Edit2->Text=AnsiString(cBuffer);  
                                   
                          }  
                          catch   (Exception   &E)  
                          {  
                                  ::MessageBox(NULL,E.Message.c_str(),"eerr",MB_OK);  
                          }  
                  }  
                  __finally  
                  {  
                          delete   pStream;  
                  }  
          }  
  }  
  }  
   
   
  ServerSocket在ClientConnect事件中写  
  void   __fastcall   TForm1::ServerSocket1ClientConnect(TObject   *Sender,  
              TCustomWinSocket   *Socket)  
  {  
          Socket->SendText("ServerSocket1ClientConnectokok");  
  }  
  但是接受不到数据,不用thread,ClientSocket用非阻塞,在onread事件却可以独到,help   me 问题点数:30、回复次数:3Top

1 楼zTommy(抓狂中。。。。)回复于 2001-12-03 09:43:07 得分 10

你的这几行代码    
  TClientSocket   *pClientSocket=new   TClientSocket(NULL);  
  pClientSocket->Address="127.0.0.1";  
  pClientSocket->Port=7500;  
  pClientSocket->ClientType=ctBlocking;  
  pClientSocket->Socket->ClientType=ctBlocking;  
  pClientSocket->Active=true;  
  不要放进Execute()里面  
  Top

2 楼wyly()回复于 2001-12-07 13:17:54 得分 10

我也遇到同样问题。我是TserverSocket用ThreadBlockingTop

3 楼copy_paste(木石三)回复于 2001-12-07 13:49:54 得分 10

{  
   
                                  memset(cBuffer,0,nBufferCount);  
                                  if   pStream->WaitForData(4000)   //如果返回成功(有信息来)  
                                  {    
                                          //char   quest[]="wait";  
                                          //pStream->Write(quest.strlen(quest));  
                                          int   i=pStream->Read(cBuffer,strlen(cBuffer));  
                                          Form1->Edit2->Text=AnsiString(cBuffer);  
                                  }  
                           
   
  在Block方式和你用Thread方式来读取数据,最好用MsgWaitForMultipleObjects来等待ClientSocket1->Socket->SocketHandle触发的读或close信息,主要它还可以接受消息。  
  Top

相关问题

  • 如何用asp接收XML数据包?
  • 使用winsock接收数据的问题?
  • [请教]TWinSocketStream接收数据长度为0,实际已经收到的问题
  • 利用ClientServer接收数据中出现 0x00 后面的数据如何一次接收完.
  • 使用TCustomWinsocket时,发送数据和接收数据不一致的问题
  • 如何用 SOKET 传送及接收数据流 ?
  • 如何用VC实现接收广播数据包???
  • 带宽非常窄,用TCP/IP怎样接收数据?
  • 用什么数据类型接收Access表的备注字段
  • 如何用memfile接收解码AVI MUX产生的数据流???

关键词

  • active
  • socket
  • pclientsocket
  • cbuffer
  • pstream
  • twinsocketstream
  • nbuffercount
  • quest
  • ctblocking
  • tclientsocket

得分解答快速导航

  • 帖主:chenqp
  • zTommy
  • wyly
  • copy_paste

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo