问题标签 [beginreceive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1988 浏览

.net - .NET Socket.BeginReceive:读取的字节数

出于好奇,我一直在看这里的数据包捕获代码。有这样一段:

MSDN 文档说 EndReceive 确实返回接收到的字节数,但是在每次异步接收后简单地连续累加 nReceived并不会接近我期望的字节数。例如,下载一个 16 MB 的文件只达到大约 200K。

我已经查看了与此类似的其他问题,但没有找到任何东西。我尝试改变缓冲区大小以查看是否有所不同,但没有。我只是误解了代码的作用吗?

编辑:收到的字节是这样累积的。看起来很简单,所以希望我没有在那里犯错!

Edit2:这是用于接收数据的代码。如果需要更多详细信息,可以从我的问题开头的链接获得完整的源代码。该文件是 MJsnifferForm.cs。

我想知道在调用“mainSocket.EndReceive”和下一次调用“mainSocket.BeginReceive”之间接收是否会丢失,但我认为这不应该是一个问题?

0 投票
1 回答
772 浏览

asynchronous - 在 ServiceBus 上使用 BeginReceive 和 EndReceive 发送消息对我不起作用

我需要在总线上进行异步消息传递。

这是我正在使用的代码:

这是异步获取:

我得到的输出是:

它说那行 result.AsyncWaitHandle.WaitOne(); 正如我认为的那样,直到 AsyncGet 的线程完成后才停止执行。请告诉我我在这里做错了什么。谢谢!

0 投票
1 回答
931 浏览

vb.net - 关于用于 BeginReceive 方法的回调方法

以下是我在客户端的套接字编程中使用的回调方法,用于从服务器异步接收数据:-

我的疑问是,当在“OnDataReceived 方法”“Received_Size”= 0 内部时,我是否应该断定套接字已断开连接?如果不是,那么在什么情况下 Received_Size 应该 = 0 ?

为什么我要问的是,每当连接的服务器断开连接时,就会调用“OnDataReceived”方法,结果“Received_Size”为= 0。但只有在有一些数据要为套接字读取时才应该调用它,而不是在连接时调用/disconnect 发生了,对吧?

我非常感谢任何能澄清我的疑问的人。

0 投票
1 回答
168 浏览

c# - 使用 BeginReceive 读取 POP3 电子邮件时出现特殊字符错误

我正在使用BeginReceivefromSocket来接收来自电子邮件的数据。

我创建了一个StringBuilder放在 BeginReceive 方法的最后一个位置,在object state

它有效,但StringBuilder带有奇怪的字符。而不是电子邮件中的基本葡萄牙语名称(João Gelásio),它显示为 Jo=E3o Gel=E1sio

我不明白问题是出在StringBuilder配置上,还是在阅读带有BeginReceive.

谁能帮我?

提前致谢

0 投票
1 回答
233 浏览

vb.net - 开始接收尾随空字符/字符(0)

我正在编写一个异步套接字客户端来传输文件(在这篇 Microsoft 文章之后),并注意到使用 BeginReceive 会破坏传输,因为它在每个数据包的末尾添加了一个 Null 字符/chr(0)。什么可能导致此问题?我认为它可能是发送方,但我用 SendFile 对其进行了测试并得到了相同的结果。

在 Microsoft 文章中,它将字节转换为 ASCII 字符串并将其附加到 StringBuilder。我想即时保存字节,所以我几乎没有像这样修改 ReceiveCallback:

0 投票
2 回答
950 浏览

c# - UDP套接字是否需要像TCP套接字一样经过Accept Process?

我正在使用 UDP,当多台机器需要连接到服务器时,我想知道接受方法。到目前为止,我正在使用 UDPCliente 类、IPEndPoint 类和 BeginRecieve / EndRecieve 方法来创建一个可以同时连接多台机器的服务器。

我的问题很简单,我需要使用 Accept 方法来处理传入连接并为每个新连接创建一个新套接字吗?

处理与 UDP 的多个连接的最佳方法是什么?

到目前为止,我看到的代码示例创建了一个新的 UDPClient 类和一个 IPEndPoint,之后服务器正在侦听连接,代码调用 BeginRecieve 传递一个接收数据的函数,然后再次启动 BeginRecieve 的过程。

这些是我到目前为止一直在使用的代码示例:

0 投票
0 回答
501 浏览

c# - 远程主机在 udpClient.BiginReceive 方法中强制关闭现有连接

我在 UdpClient.BeginReceive 方法中收到“现有连接被远程主机强制关闭”错误。可能是什么问题?

此代码在网络中的某些 ip 中工作,但在某些 ip 中不起作用

0 投票
2 回答
1511 浏览

c# - C# UdpSocket在发送后开始接收,在几个包后停止接收

我正在尝试通过 UdpSocket 从多播地址接收数据。在我通过套接字发送数据之前,套接字不接收数据。发送后,我可以收到几个包裹,然后我必须再次发送,才能收到更多包裹。同时从其他主机发送的包丢失。我认为,这不是像这里这样的防火墙问题:C# UDP Socket 在发送数据之前不会接收数据,因为 whireshark 接收所有包。有人可以向我解释这种行为吗?

0 投票
1 回答
1156 浏览

.net - EndReceive 永远不会完成接收 vb Net

我正在使用Microsoft (Visual Basic net 4.5) 的示例来发送和接收数据抛出套接字,但这个块总是正确的:

但是我发送、发送、发送消息,无论是短消息还是大消息,它都不会进入 else 语句。在这里,我的初始代码:

我确实收到了服务器发送的消息,我可以在 Visual Studio 中逐个步骤地看到它们,但我不知道为什么它永远不会进入 else,我的意思是,它永远不会完成接收数据。

我阅读了 Marc Gravell 的答案,但我更喜欢如何解决这个问题的代码示例,我不知道该怎么做。

此外,我删除了“else”,它用许多白线填充了我的文本框,就像许多接收的无限循环。请帮我。谢谢。

哦,对不起,这里是 Escuchador 函数:

0 投票
1 回答
1401 浏览

c# - 当我将 ReuseAddress 设置为 true 时,为什么没有来自 BeginReceive 的回调?UDP

我正在为 UDP 接收和发送功能创建一个 C# 套接字,并为接收提供异步回调函数。很简单,对!消除所有皱纹需要一段时间,但它确实有效......好吧,只要你占领港口!我需要允许其他应用程序使用相同的端口号。没问题,对!有一个选项,SetSocketOption(...) for ReuseAddress ...

为什么当我将 ReuseAddress 设置为 true 时,回调函数不再被命中?