CSocket netdata;

 if (netdata.Connect("192.168.0.77",4660));
{
MessageBox("connected success",NULL,MB_OK);
}
int i;
char m_re[1500];
int leng;
char aa;
UpdateData(true);
leng=netdata.Receive(m_re,1500,0);
for(i=0;i<leng;i++)
{
aa=*(m_re+i);
m_NetData=m_NetData+aa;
} UpdateData(false);
我telnet 192.168.0.77 4660 端口,是有数据的,但是我的程序接收不到,大家看看是怎么回事啊?

解决方案 »

  1.   

    接收的时候怎么能保证数据已到呢?应该在从CSocket继承一个类,然后再定义这个类的对象。
    在CYourSocket类的OnReceive函数中发消息(或者调用函数)通知其他的函数接收数据。
      

  2.   

    怎么不见你的Create()?
    调用Connect()和Receive()之后应该检查返回值的
    收够1500或者连接关闭时才会退出Receive()
      

  3.   

    单步跟踪一下,楼上说的有道理。
    不过我觉得你用telnet来测试想法挺好。
      

  4.   

    应该在从CSocket继承一个类,然后再定义这个类的对象。
    在CYourSocket类的OnReceive函数中发消息(或者调用函数)通知其他的函数接收数据从你的程序中看得出你目前最大的问题是因为你对CSocket类的用法不熟,最好是把MSDN
    里面的那个用CSocket实现的聊天室程序例子看看先!
      

  5.   

    先用create()
    后connect
    同时connect()后并不能保证已经连接成功。在onConnect事件中判断连接成功否