c#发送数据最大值

ericmpdeng 2015-02-15 11:17:46
c#socket数据udp或tcp传输的时候,我一次传输的大小如何设定 ,100M网络中,这个BUFFER设置多少合适,2M?如果设置为2M是不是我一次可以川2048bit数据,就是聊天的时候的最大字数是不是可以为1024个?大家指教,我新手!
...全文
216 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你的老板问你“为什么发个2M的消息,都过了1分钟了你还没有写出来代码呢?”,你回答“我在俺就 IPv4 数据包格式,现在刚研究到‘段偏移量、生存时间、源地址、目的地址’这里,还有包中的另外10几个字段的概念没有搞白,还没有搞懂包中的‘用户数据’段最大可以有多少字节呢”,你的老板肯定要炒了你的鱿鱼了。因为老板一看就知道这对于你目前来说——没用,只是会制造更多bug的。
  • 打赏
  • 举报
回复
引用 6 楼 ericmpdeng 的回复:
看来我只有分包发送才行!
要想真正知道代码怎么写,实际写一行代码去测试。
ericmpdeng 2015-02-16
  • 打赏
  • 举报
回复
看来我只有分包发送才行!
  • 打赏
  • 举报
回复
短信是用户界面,而移动公司的一条短信发送信令则会在短信内容之外增加许多内容而不是只有140个字节,手机用户根本不用关心。短信的用户界面规定了如果你发多1个字节,也要另外算钱,另外给显示一条短信。 而你的应用程序层面的tcp发送命令,没有给你纠结于底层的buffer有多大。如果我们纠结于底层到底是1012还是1020个字节为一个数据包,数据包中有多少字节是控制内容、有多少字节是用户数据,这就好像我们要去写文章时一定要每一个字都现场研究一遍“短字有多少种写法、信字有多少种写法”一样。 tcp方式发送信息,如果你有几千万字节以内,你就直接作为一个逻辑 buffer 发送好了。当然按照一定的逻辑方式进行拆分,可以方便于分块管理,例如断点续传。 对于 udp 方式发送,在 .net framework 中规定了大致不到60000多一点的限制,如果一次发送信息的 buffer 大小达到了 64k 或者更大就会报错的。
effun 2015-02-16
  • 打赏
  • 举报
回复
这个就象是发手机短信,一条短信限制为140个字节,也就是70个汉字,除非是为了省钱,否则你可能不会在乎文字的长度是否超出了这个限制。超出了怎么办呢?当然这不是你需要关心的,因为手机的操作系统会帮你自动分割,这和使用Socket发送数据是一样的,你所说的Buffer指的是实际要发送的内容,如果不关心内存的使用量,可以设置到与要发送内容一样大,但无论设置到多大,在传输时底层都会帮你自动分割成一个一个的数据包,而在接收端会自动拼接,而最终收到的数据就是发送的数据。
  • 打赏
  • 举报
回复
发送的时候,写(例如)
c.Send(Encoding.UTF8.GetBytes(str));
一次发送,你有多少字节、这个BUFFER就是多大,跟底层buffer大小概念无关。
qldsrx 2015-02-16
  • 打赏
  • 举报
回复
UDP必须自己分包,单个数据包据说不得超过64K,否则会出错。另外如果走ADSL协议,则单个数据包不得超过1492字节,否则也会出错。如果你的数据太多,要分包发送,你还必须为每个数据包做记号,以确认客户端是否都收到。如果是组播,必须控制发送速度,否则很有可能有来不及接收的客户端存在。
ericmpdeng 2015-02-16
  • 打赏
  • 举报
回复
引用 8 楼 sp1234 的回复:
如果你的老板问你“为什么发个2M的消息,都过了1分钟了你还没有写出来代码呢?”,你回答“我在俺就 IPv4 数据包格式,现在刚研究到‘段偏移量、生存时间、源地址、目的地址’这里,还有包中的另外10几个字段的概念没有搞白,还没有搞懂包中的‘用户数据’段最大可以有多少字节呢”,你的老板肯定要炒了你的鱿鱼了。因为老板一看就知道这对于你目前来说——没用,只是会制造更多bug的。
我是要用组播向客户端传送用户列表,包含分组,别名,IP登信息,如果用户在1000左右大概就80多K,要报错,你有没有UDP分包发送接收的例子?
threenewbee 2015-02-15
  • 打赏
  • 举报
回复
聊天的字数和包的大小没有关系。如果一个聊天程序能传递的信息受包大小的限制,那也太low了。
本拉灯 2015-02-15
  • 打赏
  • 举报
回复
TCP 在网卡底层有限制。就算你一次发送10M 他也是分包给你专输的。 一般我们转一个数据包过去1024个字节或512字节即可

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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