关于c#的socket分包和组包的问题

最近在做TCP和UDP协议的通信DLL;大家分包和组包有没有什么好的建议;因为有时候比如要发送好几M的东东,如果不进行分包的话;当异步接收的时候Udpsocket.Beg... 最近在做TCP和UDP协议的通信DLL;大家分包和组包有没有什么好的建议;因为有时候比如要发送好几M的东东,如果不进行分包的话;当异步接收的时候Udpsocket.BeginReceiveFrom(
state.Buffer, 0, state.Buffer.Length,
SocketFlags.None,
ref state.RemoteEP,
EndReceiveFromCallback,
Udpsocket)这个state.Buffer也要设置成几M,太不可思议了;那只能分包,分包我是这样想的;把一个大包分成N个小包,然后一个一个发,发一个对方发一条确认信息过来;再发下一个包 还有一个方法是;连着一个一样发下去,让对方去分析;分析出来哪几个小包没有收到,然后再叫这端把这几个小包发过去 大家都是怎么做的
展开
 我来答
syht2000
高粉答主

2014-05-09 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
怎么分包那是tcp本身的问题,不需要你去考虑,你只需要考虑tcp的粘包就行了。
追问
tcp会粘包吗?我没有碰到过 粘包是怎么样的 应该怎么处理?还有就是handler.BeginReceive(stateOne.Buffer, 0, Date_Max, 0, new AsyncCallback(ReadCallback), stateOne);stateOne.Buffer这个会随着缓冲区数据的大小而自动增加吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式