CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

用SOCKET传输2组数据的问题

楼主pplit()2005-06-01 18:31:56 在 VC/MFC / 基础类 提问

服务器建立一个SOCKET  
                  char   s[10]="winsock";  
                  char   s1[10]="winsocket";  
                socket=accept(m_server.m_hSocket,NULL,NULL);  
                send(socket,s,sizeof(s),0);  
                send(socket,s1,sizeof(s1),0);  
   
  客户端  
                  len=recv(m_client.m_hSocket,s2,10,0);  
                  len1=recv(m_client.m_hSocket,s3,10,0);  
                  AfxMessageBox(s2);              
                  AfxMessageBox(s3);  
   
  当只发送一个s或s1的时候,运行正常,都会弹出一个提示框显示“winsock”或“winsocket”  
  但是当s和s1一起发送(就象上面的格式),虽然会弹出“winsock”和“winsocket”提示框  
  但是会多弹出2个乱玛对话框。不知道究竟那里出了问题? 问题点数:0、回复次数:4Top

1 楼luolovegui(骆归)回复于 2005-06-01 18:34:06 得分 0

网络太忙了,他会把两个做成一个发送吧。Top

2 楼newbiestar()回复于 2005-06-01 20:36:25 得分 0

粘包了……几个数据包被一次收下来了……  
   
  自己定义一个包格式吧……然后每次收完了自己解析。这个东西没有什么更好的办法解决了(除非你用人家做好的东西),另外还有个简单方法是两个socket,发送不同的东西,并且一次发送以后如果对方没有响应,就继续重发,并且阻止其他的内容发送……Top

3 楼newman0708(nch)回复于 2005-06-01 20:46:14 得分 0

我觉得应该  
  char   s[10]="winsock\n";  
  char   s1[10]="winsocket\n";  
   
  在接收到了后,自己再解析它,(就是以"\n"为分隔符,相当于readline)  
   
  要么你就用   newbiestar()   的方法。Top

4 楼AntonlioX(做人要厚道)回复于 2005-06-01 20:48:14 得分 0

up  
  Top

相关问题

  • socket异步传输数据
  • socket数据传输问题?
  • 有关socket数据传输的问题。
  • 请问如何获得socket的数据传输速度
  • Socket传输数据大小限制是多少?
  • 传输的数据为什么会丢失!(请教SOCKET高手)
  • socket(套接字)怎么传输二进制数据?急
  • 用Socket进行数据传输的问题!
  • 用Socket进行数据传输的问题!--请进
  • socket数据包传输过程中的转换问题

关键词

  • winsock
  • socket
  • winsocket
  • 弹出
  • hsocket
  • 发送
  • 东西
  • char

得分解答快速导航

  • 帖主:pplit

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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