`
zhangzuanqian
  • 浏览: 270037 次
  • 来自: ...
社区版块
存档分类
最新评论

socket丢包

阅读更多

摘录于javaeye的问答:

 

问题描述:一个服务端,一个客户端。客户端往服务端传文件,具体 细节不说了,客户端发给服务端的是文件处理后的定长数据报文(由 数据报文头和数据报文体组成,其中报文头里约定了客户端发送多少 个定长报文后,服务端要往回发一个确认包,然后客户端才继续发送 定长报文)。服务端每接收一个数据报文先对其处理(拆包,写入文 件等),然后接收下一包,如果到了约定发送确认包的数量时发送一 个确认包给客户端。

 

问题:在传小文件的时候没问题,但是在文件稍大一些的时候(4-10M )就出问题。我现在发送的报文是两包一个确认,问题出现在服务器 接收每批第2包的时候,收不到数据,但是客户端那边显示已经发送, 正等待确认,所以陷入了阻塞。但是这个问题不是一直出现,每次出 现也不是在固定的位置。不知问题出现在哪儿?
 
抓出来的包:

 
该问题已经关闭: 今天终于找到问题所在了,因为我在每次接收一包数据的时候都是new一个DataInputStream,
服务器发送的快的时候可能在我new一个输入流之前已经发了数据,而我还没有得到输入流,这样就造成了丢包现
象。 我在服务器端发送的时候加一个延时,出错的概率就会减少。但在我们不能控制服务端的时候这个方式就不好了。
 所以最好的解决办法就是我们在建立Socket连接的时候,就取得输入、输出流。在以后每次收发数据的时候就一直用这个输入输出流,
 这样在批次确认的数据传输中就不会有丢包了。

分享到:
评论

相关推荐

    基于UDP SOCKET 统计丢包率

    在"基于UDP SOCKET 统计丢包率"的项目中,我们采用C/S(Client/Server)模型进行通信。客户端(Client)发送数据报到服务器(Server),而服务器则回射这些数据报给客户端。通过比较发送的数据报数量和接收到的数据...

    你真的会用socket UDP吗? UDP丢包得厉害,怎么解决? 我先给你讲UDP的理论,再告诉你解决办法,省得直接告诉你答案反而说太短

    你真的会用socket UDP吗? UDP丢包得厉害,怎么解决? 我先给你讲UDP的理论,再告诉你解决办法,省得直接告诉你答案反而说太短

    UDP 丢包率测试工具

    UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了...综上所述,UDP丢包率测试工具通过UDP Socket通信机制,提供了一种简单而有效的评估网络丢包状况的方法,对于网络性能的调试和优化具有重要意义。

    网络丢包测试工具(ATKKPING)下载 1.9.9.9绿色中文版

    ATKKPING是一款网络丢包测试工具,主要用于评估和诊断网络连接的质量。该工具以其1.9.9.9绿色中文版的形式提供,意味着它无需安装,用户可以直接运行,且界面和帮助文档都采用中文,方便中国用户使用。下面将详细...

    windows socket 泄漏相关补丁包.zip

    - KB2577795: 另一个可能导致该问题的补丁,解决系统socket泄露的问题 - KB976932: windows server 2008R2 的SP1更新包,涵盖了上述两个补丁,比较大,可在官网下载:...

    socket抓包工具

    - **定位问题**:通过查看数据包内容,找出通信过程中可能出现的错误,如丢包、乱序、重复数据等问题。 - **性能优化**:分析数据传输速率,优化网络通信的效率。 - **安全检查**:检查是否存在未授权的访问或者恶意...

    socket tcp连续send会发送失败 什么原因 怎么解决.zip看似丢包其实不是

    socket连续send会发送失败 看似丢包 什么原因 怎么解决.zip

    计算机网络内部丢包节点检测方法.pdf

    在实际操作中,该方法首先使用Python语言的socket模块进行计算机网络内部丢包节点的端口扫描,特别是关注传输层UDP协议端口,如80、443和65535等代表性的端口。通过TCP开放式扫描,进一步确定可能产生丢包行为的端口...

    linux 应用程序udp 数据丢包解析

    Linux 应用程序 UDP 数据丢包解析 在 Linux 中,一个以太网包的收包流程路线是:网卡驱动收到包,触发软中断,协议栈处理,然后将包放到对应的 Socket 缓冲区,最后唤醒等待进程从内核 Socket 缓冲区中拿包。然而,...

    socket网络编程工具:抓包,测试

    此外,模拟不同的网络条件,如延迟、丢包和带宽限制,可以帮助测试程序在不稳定环境下的表现。 在压缩包"新建文件夹 (2)"中,可能包含有这些测试工具或示例代码。例如,可能有Python的socket服务器和客户端脚本,...

    头歌UDP Ping程序实现-服务端模拟丢包事件

    头歌UDP Ping程序实现-服务端模拟丢包事件头歌UDP Ping程序实现-服务端模拟丢包事件头歌UDP Ping程序实现-服务端模拟丢包事件头歌UDP Ping程序实现-服务端模拟丢包事件头歌UDP Ping程序实现-服务端模拟丢包事件头歌...

    SocketTool,Socket调试工具,TCP、UDP编程必备

    - UDP数据包是否到达目标,丢包情况如何。 - 网络延迟和带宽限制对通信的影响。 此外,SocketTool还可以用于测试网络环境的稳定性,以及与其他网络设备或应用的兼容性。通过这个工具,开发者可以更直观地了解Socket...

    包的测试 SOCKET传二进制流

    例如,我们可以创建包含不同大小和类型的二进制数据包,模拟网络丢包或延迟等情况,确保程序在各种条件下都能正确地发送和接收数据。 文件名“包的测试”可能包含了用于测试的C语言源代码,这些代码可能涉及到上述...

    SocketTool for Mac

    同时,工具可能还提供了接收数据的界面,显示接收到的数据包,以及相关的统计信息,如传输速率、丢包率等。 在开发过程中,SocketTool可以帮助解决以下问题: 1. 验证网络连接:检查TCP或UDP连接是否正常,排查网络...

    udp_file_tx.rar_ udp_file_tx_udp tx linux_丢包率

    标题“udp_file_tx.rar_ udp_file_tx_udp tx linux_丢包率”暗示了这是一个关于在Linux环境下使用UDP协议进行文件传输的主题,其中特别关注的是在良好网络条件下的丢包率问题。UDP(User Datagram Protocol)是一种...

    SocketTool

    使用SocketTool,你可以检查在UDP通信中是否出现丢包、乱序等现象,优化网络性能。 在使用SocketTool时,你可以执行以下操作: 1. 创建TCP连接:输入目标IP地址和端口,发起连接请求,查看连接建立过程中的问题。 2...

    iOS Socket 使用Demo

    本示例“iOS Socket 使用Demo”将介绍如何使用GCDAsyncSocket库来构建一个简单的Socket应用,并解决丢包问题。 首先,我们需要了解Socket的基本概念。Socket是网络通信中的一个端点,它提供了进程间通信(IPC)的...

    Socket连接-TCP测试

    为了保证案例的可行性,图片的大小需要限制在TCP连接允许的范围内,同时考虑到网络延迟和丢包等情况,可能需要实现重传机制或者错误检测策略。此外,这个案例可以作为基础,进一步扩展到更复杂的应用场景,比如文件...

    牛逼抓包工具 Socket通讯抓包

    这有助于开发者理解和调试网络应用的行为,例如检查数据是否正确发送,排查网络延迟或丢包问题,以及发现潜在的安全问题。 常见的抓包工具有Wireshark、Tcpdump和Microsoft Network Monitor等。Wireshark是最受欢迎...

    好用的Tcp Socket调试工具

    5. **错误检测**:提供错误检查机制,帮助定位网络异常或编码错误,比如丢包、乱序、重复等问题。 6. **协议分析**:对于TCP/IP协议栈的各个层次进行解析,包括IP、TCP、UDP等,便于理解协议执行过程。 7. **多...

Global site tag (gtag.js) - Google Analytics