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

关于socket通讯中发送缓冲区的问题

楼主tkd82()2006-11-01 00:40:03 在 专题开发/技术/项目 / 网络通信 提问

问题是这样的,最近写一个C/S结构的工具,   socket类型用   SOCK_STREAM,   开始使用默认的发送缓冲区大小,   发送过程是上层要发送的数据拆分为若干个小BUFFER发送,每个小包大小为   512   个字节,然后编号后发送出去,接收到的小包按照序号重组成大包使用,本地测试没有什么问题,后来在局域网中测试,结果出现数据丢失现象,经调试,看内存等发现还不是丢一个小包,只是小包中一些字节丢失,其他字节正常,   经过仔细检查代码,并未发现问题,   后来偶然间想到会不会是发送缓冲区影响的,   然后修改发送缓冲区大小为   512   字节,   经测试发现问题解决了,   后来发发送缓冲区改为   2*512   字节,测试也没问题,但是当   3*512   字节以后问题又出现,   无奈只能用   2*512   字节的缓冲区,  
  但是速度非常慢,   局域网中这个速度无法忍受,   看来修改缓冲区大小为治标的办法,现在希望各位大虾能指点个治本的办法,谢谢先了 问题点数:20、回复次数:2Top

1 楼taosiming(浪苍云)回复于 2006-11-01 22:55:19 得分 0

SOCK_STREAM会丢失?你不是在否定tcp协议么?看看字节排序和发送数据是不是多线程在操作而没有加锁什么的,感觉你没有找到根本原因!Top

2 楼wqf363(denny)回复于 2006-11-04 11:50:30 得分 0

socket类型用   SOCK_STREAM,   开始使用默认的发送缓冲区,   linux下默认是16384B,而且TCP不可能出现发现丢包的问题,估计楼主的问题会不会是网络字节顺序与主机字节顺序引起的....Top

相关问题

关键词

得分解答快速导航

  • 帖主:tkd82

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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