关于socket的问题,请高手指点。

rumlee 2005-08-28 01:17:04
我写的一个程序分为两部分,一部分用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);
}

运行打印出来的是消息的长度,不知道为什么在客户端却一点反映也没有。
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rumlee 2005-08-29
  • 打赏
  • 举报
回复
我找到问题得原因了,因为我用的是java里面的BufferedReader类的readline方法,所以没有碰到回车或者换行是不会当作一行处理的,我在vc里面发送的时候强制在后面加了一个'\n'就可以了,谢谢大家。
shootingstars 2005-08-28
  • 打赏
  • 举报
回复
你可以使用嗅探器在接受方的机器上嗅探一下,查看数据是否已经发出。
如果嗅探到数据,表明问题出在接受方,否则问题在发送方(呵呵,个人经验)
horisly 2005-08-28
  • 打赏
  • 举报
回复
嗯。这个应该不关服务器端的事了。
看看你的java客户端

*****Power By Horisly*****
younggle 2005-08-28
  • 打赏
  • 举报
回复
可能是你客户端创建的SOCKET对象没有处理好,注意它应该是一个成员变量,即它的生命周期要一直存在,直到你关闭为止。
你是不是把它声明为局部变量了??
oyljerry 2005-08-28
  • 打赏
  • 举报
回复
看客户端的接收部分代码
rumlee 2005-08-28
  • 打赏
  • 举报
回复
可是为什么对方收不到呢?
hyg2008 2005-08-28
  • 打赏
  • 举报
回复
Send成功只能说明发送出去了,不代表对方已经收到。
rumlee 2005-08-28
  • 打赏
  • 举报
回复
怎么没有人回答我呢,自己顶一下。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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