CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

数据包接收和发送问题

楼主yphuan(ahuan)2005-01-13 23:20:48 在 VC/MFC / 网络编程 提问

在使用tcp连接发送数据包时,我连续调用send,发送不同的数据,可是在接收的时候,如果两次发送的数据包不是很大,则接收时,将一起接收,即一次recv动作将把两次send的数据全都接收进来,也可能是两次的数据被一次send出去,请问如何才能使得,每一次recv就接收一次send的数据,无论数据包有多小?谢谢!  
  问题点数:20、回复次数:8Top

1 楼newshute(小武)回复于 2005-01-14 00:06:15 得分 0

传送时指定传输的数据大小,接收时不管接收到多少都只取你要求的大小。或者看一下异步传输...Top

2 楼99263()回复于 2005-01-14 00:13:20 得分 4

设两个缓冲区,一个为数据缓冲区,一个为临时缓冲区,接收数据时,将接收到的数据保存到临时缓冲区中,然后拷贝到数据缓冲区中,然后分析数据缓冲区中的内容,不过你得定义数据包头和包尾,有时可能还剩半个包,就先放在数据缓冲区中,下次会再收到另一个半包的数据。Top

3 楼aspvbjava(注定走入地狱)回复于 2005-01-14 00:31:32 得分 4

tcp没有包边界的概念,数据是一个字节一个字节发送的,只能你自己分析收到的数据  
  可以发送一个结构,传送数据包的长度  
  struct   datastruct{  
          char   *flag;  
          int   len;  
  }  
  或者采用udpTop

4 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2005-01-14 09:52:21 得分 10

粘包问题。解决方法之一:甚至socket为不缓存直接发送!  
                                          二:发送和接受头里面有长度的校验Top

5 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2005-01-14 12:50:49 得分 2

严重同意楼上的。  
  是的,粘包问题。  
  可以去网上搜一下。Top

6 楼yphuan(ahuan)回复于 2005-01-14 15:24:57 得分 0

谢谢楼上的几位,我找到了那个帖子http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=146252  
   
  大致有思路了,谢谢!!Top

7 楼HHunter()回复于 2005-01-14 15:26:57 得分 0

同意     newshute(小武)   的说法Top

8 楼yphuan(ahuan)回复于 2005-01-14 15:57:49 得分 0

http://www.vckbase.com/document/viewdoc/?id=1203,这个是带图的。Top

相关问题

  • 怎样用api来实现udp数据包的接收和发送??
  • 如何用socket发送和接收自定义数据包?求源代码
  • 如何用socket发送和接收自定义数据包?求源代码
  • 用UDP发送接收数据包需要几个端口?
  • ASP中的数据包发送的与接收的问题!一定加分!
  • 请教各位:怎样才能通过程序实现监听某个端口(80端口)发送和接收的数据包:
  • 请教C#网络编程高手,如何在C#.net环境中用Socket发送和接收一个Struct类型的数据包!!
  • CSocket::Receive()和ReceiveFrom()函数可能接收到同一数据包吗?
  • 百分请教,jsp怎么接收soap数据包,以及发送soap数据包,我要郁闷死了!!!帮我!
  • 如何用asp接收XML数据包?

关键词

  • 数据
  • 数据包
  • 缓冲区
  • 接收
  • 发送
  • 谢谢
  • 问题
  • send

得分解答快速导航

  • 帖主:yphuan
  • 99263
  • aspvbjava
  • sharkhuang
  • fisker0303

相关链接

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

广告也精彩

反馈

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