RawSocket抓包时,如果是正在传文件,则丢包严重的吓人

作者:超级管理员 更新时间:2017-09-13 09:57:45 来源:未知 点击:15642
50M的文件传输,只抓到100-200KB。public void Run()   {   IAsyncResult ar = socket.BeginReceive(receive_buf_byte
50M的文件传输,只抓到100-200KB。


public void Run() 
  {
   IAsyncResult ar = socket.BeginReceive(receive_buf_bytes, 0, len_receive_buf, SocketFlags.None, new AsyncCallback(CallReceive), this);
  }

  private void CallReceive(IAsyncResult ar)
  {
   int received_bytes;
   received_bytes = socket.EndReceive(ar);
   Receive(receive_buf_bytes, received_bytes);
   if (KeepRunning) 
       Run();
  }


上面的代码,BeginReceive异步接受消息,Receive处理接收到的数据包,那么,在Receive处理数据包的时候,会不会漏包啊,尤其是文件传输时,数据传的很快,而Receive处理数据包要花时间,是不是这个原因导致我的RawSocket少抓了很多包???

以下是关于本问题的解决方案:

解决方案1、
小偷程序的问题,应该换到“黑xxxxx”那类论坛问。

正常的软件编程,应该使用正常的操作系统和应用开发框架类库。
解决方案2、
socket接收超过了buffer上限还没有处理,后续的包全会丢弃
解决方案3、
引用 1楼以专业开发人员为伍 的回复:
小偷程序的问题,应该换到“黑xxxxx”那类论坛问。

正常的软件编程,应该使用正常的操作系统和应用开发框架类库。
什么意思???
解决方案4、
引用 2楼shingoscar 的回复:
socket接收超过了buffer上限还没有处理,后续的包全会丢弃
大侠能再说清楚一点吗?小白听不懂啊。。。
解决方案5、
就是说你的处理程序太慢了
解决方案6、
那怎么大概判断自己从socket取出数据的速度呢,开定时器?

推荐阅读

热门内容

关于对文件名使用 string.Repl

这里我用replace()想要让文件名变...

wpf的keydown事件

页面只有这句话       ...

ASP.NET MVC验证表单

代码如下        [Require...

EasyUi Datagrid+Deta

各位牛人,有没有做过类似的功能效果,Ea...

c#串口程序界面卡死问题

 private void sp_Dat...

C# 判断一张图片是否是空白图片

平时做文件扫描存档,一般都是双面扫描.扫...

我在Winform中修改WebBrows

我在Winform中修改WebBrows...

c# 引用webservice 出现问题

我在浏览器浏览没问题就是在项目中添加服务...

有人这么黑易语言,连我都看不下去了

本帖最后由caozhy于2017-09-...

窗体加载时,代码未执行完就弹出了窗体

不知道是这样写不合理,还是我哪里写错了呢...

最新内容

关于对文件名使用 string.Replace() 没有作用 请教

这里我用replace()想要让文件名变成E:\CloudMusic\薛之谦 -...

以下代码实现的单例模式有什么缺陷?如果有,请做出你的修改!

public sealed class Singleton       stat...

wpf的keydown事件

页面只有这句话         

ASP.NET MVC验证表单

代码如下        [Required(ErrorMessage = "标题...

以XX开头的标识符太长,最大长度为128

本帖最后由qz6412525于2017-09-1212:09:14编辑如题,是一...

分部声明包含冲突的可访问性修饰符

代码如下:namespace ConstDefinitionLib{    pu...

关于 查询语句 中select 索引问题

string[] fruits = { "apple", "banana", "...

EasyUi Datagrid+DetailView 如何让他默认全部展开

各位牛人,有没有做过类似的功能效果,EasyUI DataGrid+Detail...

c#串口程序界面卡死问题

 private void sp_DataReceived(object sen...

浏览器内核问题

请问有谁会使用vs2013,用c#或vb编写在winform里面嵌一个谷歌浏览器...

LINQ to Entities 不识别方法“System.DateTime AddMinutes(Double)”,因此该方法无法转换为存储表达式。

代码如下,求大神帮忙看看:                    DateTim...

mvc 怎么执行mysql里的存储过程

我的连接是这样的。 public class mysqlconn : DbCon...

C# 判断一张图片是否是空白图片

平时做文件扫描存档,一般都是双面扫描.扫描之后,需要存档,有些背面空白的,需要剔...

我在Winform中修改WebBrowser控件修改User-Agent的方法貌似对WebkitBrowser无效,我已经修改为手机了

我在Winform中修改WebBrowser控件修改User-Agent的方法貌...

RawSocket抓包时,如果是正在传文件,则丢包严重的吓人

50M的文件传输,只抓到100-200KB。public void Run() ...

如何让Toast占满整个屏幕(包含状态栏)

本帖最后由sixsun1989于2017-09-1221:15:38编辑    ...

不熬夜看这里 苹果发布会直播全程回顾

        想必今天一早醒来,你的朋友圈和新闻头条一定都会被昨晚科技圈的大事...

网友心声有求必应 苹果同传四川话版

         在苹果秋季发布会开始前两周,我们针对网友喜欢听什么地方方言做过...

iPhone X演示出重大失误?背后另有真相

    中关村在线消息:苹果公司于美国西部时间9月12日上午10点(北京时间9月...

全视曲面商务旗舰 三星Note 8今晚发布

    中关村在线消息: 备受大家期待的三星新旗舰Note 8将于今晚18时在北...