我写的一个程序分为两部分,一部分用vc编写,另一部分用java编写,之间靠socket通讯。vc写的是服务端。用java连接都没有问题。之后从客户端写数据到服务端,服务端也能够正常收到,我是用的继承CSocket类,并覆盖OnReceive方法的,但我想服务端收到之后,给客户端一个回复,客户端却收不到了,我用的是Send函数,返回值是写的消息的字符数,说明已经成功了,为什么收不到呢?
我的函数是这样写的
void ReClient(char *message){
  int ret;
  ret = this->Send(message,strlen(message),0);
  CString c;
  c.format("ret=%d",ret);
  AfxMessageBox(c);
}运行打印出来的是消息的长度,不知道为什么在客户端却一点反映也没有。

解决方案 »

  1.   

    Send成功只能说明发送出去了,不代表对方已经收到。
      

  2.   

    可能是你客户端创建的SOCKET对象没有处理好,注意它应该是一个成员变量,即它的生命周期要一直存在,直到你关闭为止。
    你是不是把它声明为局部变量了??
      

  3.   

    嗯。这个应该不关服务器端的事了。
    看看你的java客户端                      *****Power By Horisly*****
      

  4.   

    我找到问题得原因了,因为我用的是java里面的BufferedReader类的readline方法,所以没有碰到回车或者换行是不会当作一行处理的,我在vc里面发送的时候强制在后面加了一个'\n'就可以了,谢谢大家。