社区
C#
帖子详情
C# socket udp 一次最大能传多少字节
zjh78987
2011-11-30 09:23:12
最近写了一个 socket 程序,由于网速慢,客户端与服务器连接太慢,有时 3 秒才能建立连接,导致我的程序接收包超时,这样就会重新发,只要 5 次超时就会放弃连接,原每次传输 1000B,现改成 8019B(C#默认为 8190B),传输速度是提升了,但是超时次数还是很多,如果是 1MB 的东东,启不是要传很长时间,本人试过 每次传 30000B,成功,但不知道最大能传多少?包的大小是否会影响 socket 的传输?请高人给出点建议
...全文
462
3
打赏
收藏
C# socket udp 一次最大能传多少字节
最近写了一个 socket 程序,由于网速慢,客户端与服务器连接太慢,有时 3 秒才能建立连接,导致我的程序接收包超时,这样就会重新发,只要 5 次超时就会放弃连接,原每次传输 1000B,现改成 8019B(C#默认为 8190B),传输速度是提升了,但是超时次数还是很多,如果是 1MB 的东东,启不是要传很长时间,本人试过 每次传 30000B,成功,但不知道最大能传多少?包的大小是否会影响 socket 的传输?请高人给出点建议
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjh78987
2011-12-01
打赏
举报
回复
>> 以UDP方式传输数据,每次传输的最佳大小约为1KB左右。
<< 如果我要传的东西在 10MB 左右,而且这时网络质量很差,有时发一个包要等几秒才能收到包,10 * 1024*1024,启不是要分10240 个包,假设一秒收到一个包,我启不是要花 170 分钟才能收完
csdn_aspnet
2011-11-30
打赏
举报
回复
参考:
http://blog.csdn.net/dammad/article/details/6310768
ostbnwayo
2011-11-30
打赏
举报
回复
以UDP方式传输数据,每次传输的最佳大小约为1KB左右。
c#
编写的基于
Socket
的异步通信系统封装DLL--SanNiuSignal.DLL
SanNiuSignal是一个基于异步
socket
的完全免费DLL;它里面封装了Client,Server以及
UDP
;有了这个DLL;用户不用去关心心跳;粘包 ;组包;发送文件等繁琐的事情;大家只要简单的几步就能实现强大的通信系统;能帮助到大家是本人觉得最幸福的事情,也希望大家 在用的过程中找出DLL中不足的地方;好改正;此DLL的苹果版和java版正在努力开发中......交流QQ:365368248;此演示源码下载地址:http://pan.baidu.com/s/1eQw1npw 里面包括了SanNiuSignal.DLL 下面为大家介绍一下 如何使用SanNiuSignal. 1 ) :TCPServer服务器,通过静态方法TxStart.startServer注册成功服务器ITxServer;然后通过ITxServer设置好各种属性;最后启动 ITxServer.StartEngine();就可以了;具体可以到demo里去看;相对来说比较简单,下面来说一下需要注意的地方 一:ITxServer.BufferSize,就是接收数据缓冲区大小;默认为1kb,不要小于50
字节
,而且要和客户端设置成一样;否则会出现不可预知 的错误;这个缓冲区的大小,不会影响你每次发送数据的大小;大小只能提高你的发送速度 二:ITxServer.sendMessage 发送前先判断此IPEndPoint客户端是否在线;因为如果不在线等情况发生;此方法没有任何消息产生;如 果发送成功并且对方已经收到;会触发发送成功的事件; 三:用户可以通过ITxServer.FileLog记录服务器的运行信息; 2 ) :TCPClient客户端,通过静态方法TxStart.startClient(服务器地址或网址, 服务器端口号)注册成功客户端ITxClient;然后通过 ITxClient设置好各种属性;最后启动ITxClient.StartEngine();跟服务器启动差不多;具体可以到demo里去看;客户端要注意的一些地 方 一:如果非服务器强制关闭客户端的情况下,掉线的话,客户端默认是要重连的;他的原理是这样的,每10秒重连
一次
;重连 ITxClient.ReconnectMax次如果失败;会自动关闭客户端引擎;在重连的过程中;你可以改变客户端连接服务器的IP地址和端口号;但 如果当断开的时候不想重连;可以设置ITxClient.ReconnectMax=0; 二:登录篇,在引擎启动之前,用户可以设置ITxClient.OutTime来设置超时时间;默认为10秒,也就是说10秒之内肯定会有一个登录结果 ;登录成功或登录失败。有了登录结果会触发登录结果事件; 3 ) :
Udp
引擎,通过静态方法TxStart.start
Udp
()注册成功
UDP
--I
Udp
Tx;然后通过I
Udp
Tx设置好各种属性;最后启动 I
Udp
Tx.StartEngine();如果在启动之前要绑定端口号,请在这里设置I
Udp
Tx.Port;否则是随机使用本地端口;无论是
UDP
还是服务器和 客户端;它们的很多方法和属性以及事件都是相同的,因为他们都继承了通信系统的基接口ITxBase;下面是
UDP
引擎要注意的地方 一:
UDP
的优势在于速度快但不太可靠;所以有些属性不能设置的太过,如I
Udp
Tx.BufferSize;默认为1KB,如果在广域网上发送信息, 缓冲区大小不要超过默认值;否则数据会丢失,如果
一次
性数据大于1KB;也没事,系统会自动分包发送;不太会丢包。 4 ) :文件发送系统,通过静态方法FileStart.StartFileSend(IFileSendMust)生成一个文件发送系统IFileSend;其中IFileSendMust是 必须实现的一个接口;具体参照demo;然后通过IFileSend设置好各种属性;发送还是要通过前面的三个引擎系统发送的;如 ITxClient.SendFile 这时会返回一个文件标签,是一个整数;IFileSend可以通过操作这个标签来操作这个正在发送的文件;接收文件 系统也一样;也是通过文件标签来操作;文件续传也是一样,也要通过前面的三个通信引擎系统进行续传;因为文件系统不能决定用户 通过哪个通信系统进行续传的;例如I
Udp
Tx.ContinueFile进行续传;大家也可以试一下 掉线之后重新连接也可以续传; 5 ) :文件接收系统,通过静态方法FileStart.StartFileReceive(IFileReceiveMust)生成一个文件接收系统IFileReceive;其中 IFileReceiveMust是接收方必须实现的一个接口;具体参照demo;然后通过IFileReceive设置好各种属性;下面来讲讲文件系统要注意 的几个要点 一:每个文件都有一个文件标签,发送系统和接收系统是通过控制这个标签来控制这个文件的;如果是同一个文件传输,标签也一样的; 二:要注意属性BufferSize缓冲区大小,他是代表
一次
传送的
字节
数;如果这个文件缓冲区越大,传输速度越快;具体要设置成多少,大 家自己去调试;TCP传输的话一般可以设置成比较大,但
UDP
的话这个不要超过1KB;所以传输大文件尽量不要用
UDP
这种不可靠的东东; 三:当网络等各种原因中断文件的时候;会触发文件中断事件;文件自动处于暂停发送或接收状态;等待续传;续传的发送方,如果对方 同意续传;对方将不会触发续传开始的方法;别的大家可以通过demo里去发现; 总结: 其实这个DLL相对来讲是比较简单的;大家只要掌握这五个接口;1:ITxServer TCP服务器接口 2:ITxClient TCP客户端接口 3:I
Udp
Tx
UDP
接口 4:IFileSend 文件发送方接口 5:IFileReceive 文件接收方接口 前面三个接口是通过TxStart启动;后面二个文件接口 是通过FileStart启动 今天先讲到这里;希望这个DLL对大家有所帮助;不足之处希望通过QQ或博客园大家一起交流;谢谢 此演示源码下载地址:http://pan.baidu.com/s/1eQw1npw 里面包括了SanNiuSignal.DLL
socket
工具源码
功能介绍: 1.建立
Socket
测试服务器端和测试客户端,并向其他端发送或接受报文数据,支持自动发送和自动应答,支持
UDP
和TCP; 2.录入的IP地址和端口等参数数据进行本地XML序列化,下次自动打开。(这个是我需要的,不用每次都录入各种IP地址端口了); 3.接受或发送的报文数据,可以直接保存在日志文件当中,便于离线分析。 4.服务器端,可以查看接入的各个连接信息; 5.支持AscII和16进制的数据发送和接收显示。 注意: 开发环境为Visual Studio 2008 第一阶段,先开发客户端,第二阶段 开发服务端. 1.GPS坐标数据的解析与转化, 比如开始和结尾判断后,中间取字符串的方式. 使用什么样的编码. 2.Json数据的解析与转化,快速的发送类的一种方式,不用考虑那么多的
字节
转化方式 3.最简单的是发送字符串,这样的功能市面上都有。 我要能够发送
字节
串,可以写一个16进制串,然后发送出去. 可以定时发送. 4.多个客户端同时发送数据. 模拟数量,然后以列表的形式看发送和返回的数据. 5.添加的测试服务器和设置的参数能够保存下来,下次仍然能够使用.
C#
超级通信调试工具源码
1.串口,TCP服务端/客户端,
UDP
服务端/客户端通讯调试 2.支持Hex,ASCII,UTF8,GB2312编码调试 3.接收数据可通过右键菜单一键计算Hex对应的数值 4.
字节
计算器/检验值计算器(CRC16,自定义多项式CRC16,XOR) 5.串口超级终端 6.
Socket
通信监视器 7:Ping调试 --------------------- 作者:知秋物联 来源:CSDN 原文:https://blog.csdn.net/sqqyq/article/details/11721485 版权声明:本文为博主原创文章,转载请附上博文链接!
C#
超级通信调试工具
1.串口,TCP服务端/客户端,
UDP
服务端/客户端通讯调试 2.支持Hex,ASCII,UTF8,GB2312编码调试 3.接收数据可通过右键菜单一键计算Hex对应的数值 4.
字节
计算器/检验值计算器(CRC16,自定义多项式CRC16,XOR) 5.串口超级终端 6.
Socket
通信监视器 7:Ping调试
C#
超级通信调试工具源码20130916
C#
超级通信调试工具源码 源码描述: 软件名称:
C#
超级通信调试工具 功能概要: 1.串口,TCP服务端/客户端,
UDP
服务端/客户端通讯调试 2.支持Hex,ASCII,UTF8,GB2312编码调试 3.接收数据可通过右键菜单一键计算Hex对应的数值 4.
字节
计算器/检验值计算器(CRC16,自定义多项式CRC16,XOR) 5.串口超级终端 6.
Socket
通信监视器 7:Ping调试 历史更新记录: 版本:1.0 发布时间:2013年9月16日 计划更新: 1.支持SQLITE数据库,能保存调试命令及最后使用的通信参数信息等 2.调试命令的导入和导出 3.可将接收的数据按指定编码格式直接写入指定的文件 4.YModem协议的文件传输 5.Zmodem协议的文件传输 6.数据接收过滤器,转换器 7.通信协议编辑器
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章