iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何解决C# Socket发送数据大小问题
  • 146
分享到

如何解决C# Socket发送数据大小问题

2023-06-17 11:06:34 146人浏览 独家记忆
摘要

今天就跟大家聊聊有关如何解决C# Socket发送数据大小问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。tcp/IP是可靠性传输协议,它能保证数据能按顺序的方式到达目的地.看到以

今天就跟大家聊聊有关如何解决C# Socket发送数据大小问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

tcp/IP是可靠性传输协议,它能保证数据能按顺序的方式到达目的地.看到以上描述在写TCP/IP应用的时候似乎就可以放心了,只要程序不出意外就数据输传就是正确.但最近在做一个文件传输工作的时候确得到的结果并不是这样,发现网络环境和一次发送数据大会影响整个输传结果.以下是这两晚的测试情况

测试内容描述:

每个文件块信息包大概是120k左右

采用异步5连接输传,双方的Socket.SendBufferSize和Socket.ReceiveBufferSize都设置为64K

测试服务器分别有:

局域网:ServerA

在美国机房:ServerB 延时高,Ping有时会超时

测试client一台,通过ADSL上网.

以下是Client从Sever下载文件的情况:

服务器8K SendBuffer,客户端是8K ReceiveBuffer

从ServerA下载文件,分别下载多个文件几M到几百M不等,下载后文件正确.

从ServerB下载文件,分别下载多个文件,几M或更小的文件有部分正确,大文件基本都是错误.两端记录的发送的字节数和接收的字节相等,符合文件大小,程序也没有跟踪到数据接收异常导致的协议分解错误.

服务器4K SendBuffer,客户端8K ReceiveBuffer

从ServerA下载文件,分别下载多个文件几M到几百M不等,下载后文件正确.

从ServerB下载文件,分别下载多个文件,文件的正确率比较高,不过还是大文件相对错误比较多.当开启迅雷下载后情况就开始变坏,大部分接收到的文件都出问题,两端记录的发送的字节数和接收的字节相等,符合文件大小,程序也没有跟踪到数据接收异常导致的协议分解错误

服务器2K SendBuffer,客户端8K ReceiveBuffer

从ServerA下载文件,分别下载多个文件几M到几百M不等,下载后文件正确.

从ServerB下载文件,分别下载多个文件,下载结果没有发现错误文件.当开启迅雷下载后还是有个别文件错误,两端记录的发送的字节数和接收的字节相等,符合文件大小,程序也没有跟踪到数据接收异常导致的协议分解错误

服务器1K SendBuffer,客户端8K ReceiveBuffer

从ServerA下载文件,分别下载多个文件几M到几百M不等,下载后文件正确.

从ServerB下载文件,分别下载多个文件,下载结果没有发现错误文件.当开启迅雷下载后没有发现文件错误.

测试文件发送到Server和下载的情况基本差不多,这说明了在网络不好的情况处理发送大数据包似首容易产生错误,但看TCP/IP协议讲解这情况似乎不存在,因为当一个发送数据超过某个值的时候,TCP会划分块进行传输并保证其顺序.但网络不好的情况测试结果接收的数据有错误,但处理的数据大小是正确的,也并没影响整个协议的分解.由于对CP/IP协议、低层和路由处理的不了解,暂没找到具体原因。。。不排除程序存在还没发现的错误,打算给发送的文件数据加上校验再测试一下看情况

补充一下

以上测试只修改了一个属性

TcpUtils.SendBufferLength = 1K,2K,4K,8K

但只有1K的测试结果奇怪地没出现文件错误,其了几中均出现仅仅是对ServerB,对ServerA来说没有出现,2K,4K也只是开启迅雷的时候错误情况多.

看完上述内容,你们对如何解决C# Socket发送数据大小问题有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 如何解决C# Socket发送数据大小问题

本文链接: https://www.lsjlt.com/news/288600.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决C# Socket发送数据大小问题
    今天就跟大家聊聊有关如何解决C# Socket发送数据大小问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。TCP/IP是可靠性传输协议,它能保证数据能按顺序的方式到达目的地.看到以...
    99+
    2023-06-17
  • 如何解决MySQL数据库大小写敏感的问题
    小编给大家分享一下如何解决MySQL数据库大小写敏感的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在MySQL中,数据库对...
    99+
    2024-04-02
  • 如何解决Socket粘包问题
    本篇内容介绍了“如何解决Socket粘包问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题一:TCP存...
    99+
    2024-04-02
  • matlab数组大小限制问题如何解决
    在MATLAB中,数组的大小限制取决于计算机的内存和处理器能力。如果你遇到了数组大小限制的问题,可以考虑以下几个解决方案:1. 优化...
    99+
    2023-09-15
    matlab
  • 如何解决TCP socket的阻塞问题
    目录解决TCP socket的阻塞问题在异常处理程序当中退出socket连接TCP连接阻塞的监控和处理我们整理出符合该类异常的特征如下如何查看一个连接的创建时间解决TCP socke...
    99+
    2024-04-02
  • C#开发中如何处理大数据集的操作问题
    C#开发中如何处理大数据集的操作问题,需要具体代码示例摘要:在现代软件开发中,大数据已成为一种常见的数据处理形式。如何高效地处理大数据集是一个重要的问题。本文将介绍C#中处理大数据集的一些常见问题和解决方法,并提供具体的代码示例。数据集拆分...
    99+
    2023-10-22
    大数据集操作 C#处理大数据 数据集处理技巧
  • C#开发中如何处理大数据处理和并行计算问题解决方法
    C#开发中如何处理大数据处理和并行计算问题解决方法,需要具体代码示例在当前信息时代,数据量的增长呈指数级增长。对于开发人员来说,处理大数据和并行计算已经成为一项重要的任务。在C#开发中,我们可以借助一些技术和工具来解决这些问题。本文将介绍一...
    99+
    2023-10-22
    大数据处理 并行计算 C#开发
  • MongoDB超大块数据问题解决
    目录引言一、MongoDB服务器管理1、添加服务器2、修改分片中的服务器3、删除分片二、均衡器三、修改块的大小四、超大块1、分发超大块2、分发超大块步骤:3、避免出现超大块4、输出内容详解:五、系统分析器六、一些常见的辅...
    99+
    2023-02-09
    MongoDB超大块数据 MongoDB大块数据
  • windows错误报告发送程序问题如何解决
    要解决Windows错误报告发送程序的问题,可以尝试以下方法:1. 检查系统更新:确保Windows操作系统和相关的驱动程序都是最新...
    99+
    2023-09-28
    windows
  • 如何解决FeignClient发送post请求异常的问题
    本篇内容介绍了“如何解决FeignClient发送post请求异常的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!FeignClient...
    99+
    2023-06-20
  • Java如何解决发送Post请求报Stream closed问题
    目录问题场景问题分析解决办法springboot项目还是ssm等java常用框架都会有这样的问题,解决办法通用 问题场景 前端发送Post请求,前端返回400 Bad Request...
    99+
    2024-04-02
  • 4个大数据营销战略问题如何解决
    7这期内容当中小编将会给大家带来有关4个大数据营销战略问题如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  如今,人们生活在一个数据驱动的世界里,大数据几乎影响到数字营销的各个方面。事实证明,大数...
    99+
    2023-06-02
  • C#中获取文件大小问题怎么解决
    本篇内容主要讲解“C#中获取文件大小问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中获取文件大小问题怎么解决”吧!C# 获取文件大小直接贴代码吧   ...
    99+
    2023-07-05
  • 如何解决herf=#导致Ajax请求时没有向后台发送数据的问题
    本篇内容介绍了“如何解决herf=#导致Ajax请求时没有向后台发送数据的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅...
    99+
    2024-04-02
  • php大文件发送不了如何解决
    本篇内容介绍了“php大文件发送不了如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php大文件发送不了的解决办法:1、设置Range...
    99+
    2023-07-05
  • 如何解决Mysql大量数据导入遇到的问题
    这篇文章主要介绍如何解决Mysql大量数据导入遇到的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在项目中,经常会碰到往数据库中导入大量数据,以便利用sql进行数据分析。在导入数...
    99+
    2024-04-02
  • 如何解决mysql不小心删除数据库的问题
    这篇文章主要介绍如何解决mysql不小心删除数据库的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql不小心删除数据库的解决办法:首先打开mysql的binlog功能;然后...
    99+
    2024-04-02
  • 如何用Go语言解决LeetCode中的大数据问题?
    随着算法竞赛的兴起,越来越多的人开始关注算法题目,其中LeetCode作为一个知名的算法题库备受关注。在LeetCode中,有很多题目都存在大数据的问题,这时我们就需要使用一些高效的语言来解决这些问题。Go语言作为一门高效的编程语言,非常适...
    99+
    2023-09-26
    大数据 日志 leetcode
  • 怎样解决AI的小数据问题
    本篇文章给大家分享的是有关怎样解决AI的小数据问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决AI的小数据问题对深度学习算法,如果没有足够多的数据进行训练,有两种方法可以...
    99+
    2023-06-06
  • 如何解决MySQL大小写敏感导致的问题
    小编给大家分享一下如何解决MySQL大小写敏感导致的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MYSQL对大小写敏感见字...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作