.net - .NET-套接字发送不阻塞

标签 .net sockets synchronous

数周以来,我一直认为我的遍历文件并将其发送到服务器的算法存在错误。然后我开始怀疑连接本身是否是问题所在。

我正在同步使用套接字将byte()发送到服务器。
在继续说明之前,我做了一个记录器,以查看套接字是否阻塞了线程。

这就是我得到的:

[08/18/2015 02:25:58.779 AM] Sending
[08/18/2015 02:25:58.780 AM] Sending done
[08/18/2015 02:25:58.820 AM] Sending
[08/18/2015 02:25:58.821 AM] Sending done
[08/18/2015 02:25:58.878 AM] Sending
[08/18/2015 02:25:58.878 AM] Sending done
[08/18/2015 02:25:58.938 AM] Sending
[08/18/2015 02:25:58.939 AM] Sending done

如您所见,“发送”和“发送完成”之间是1毫秒。

我正在使用此代码发送。
Public Sub SendSync(ByVal bytData_ As Byte())
    Try
        TestLogger.Log("Sending")
        If Not blnConnected Then TestLogger.Log("Not connected") : Return
        objSocket.Send(bytData_, SocketFlags.None)
        TestLogger.Log("Sending done")
    Catch ex As Exception
        TestLogger.Log("Send Error")
        Disconnect()
    End Try
End Sub

我还启用了:
objSocket.Blocking = True

我的问题是,我在这里做错了吗?
还有其他方法可以判断套接字是在发送还是在接收?
谢谢你。

最佳答案

msdn的此示例将为您提供远程设备的响应。

'Receive the response from the remote device.
Dim bytesRec As Integer = sender.Receive(bytes)
Console.WriteLine("Echoed test = {0}", _
Encoding.ASCII.GetString(bytes, 0, bytesRec))

这是完整示例的链接。
https://msdn.microsoft.com/en-us/library/kb5kfec7(v=vs.110).aspx

关于.net - .NET-套接字发送不阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057543/

相关文章:

c# - 如何使用 Xpath 获取所有节点属性和值?

c# - 为什么我要在 TCP 客户端关闭后强制进行垃圾回收?

C# 图像空白

c++ - 服务器和客户端之间建立了连接,但无法通过 J2ME 中的 OutputStream 发送数据

javascript - 浏览器同步Ajax请求 "lock"

c# - 是否有一行代码可以获取该字符串的特定部分?

c++ - 客户端 connect() 失败,服务器 accept() 成功。为什么?

java - 有没有办法确定哪个 OutputStream 当前正在发送到我的套接字输入流?

javascript - GJS同步读取文件

python - 是什么让 WSGI 本质上是同步的?