gpt4 book ai didi

vb.net - 解决: Insufficient winsock resources available to complete socket connection initiation

转载 作者:行者123 更新时间:2023-12-04 22:42:29 33 4
gpt4 key购买 nike

我有两个系统,一个是通过网络服务发送大量数据(大约 1GB)。首先它将数据分成 block ,然后在请求时将其连同额外信息一起发送给客户端。

数据不是直接作为字节数组发送的,而是放在我创建的一个特殊类中,该类有两个成员:

1) 消息:我用它指定如何处理 block 2) Obj : 表示数据的字节数组

所以基本上服务器会填充这个结构,然后序列化整个对象,最后将它发送给客户端。每个chunk大约4KB

再次重复多次,因此数据传输量可能是 1GB 或 2GB。当我尝试运行它时出现此错误:

System.InsufficientMemoryException 被捕获 Message="Winsock 资源不足,无法完成套接字连接启动。"

当我尝试时:netstat -an -p TCP

我有这样的东西......

TCP 127.0.0.1:58759 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58760 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58761 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58762 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58763 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58764 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58765 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:58766 127.0.0.1:57469 TIME_WAIT

...

增加大约:

...

TCP 127.0.0.1:65531 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:65532 127.0.0.1:57469 TIME_WAIT

TCP 127.0.0.1:65533 127.0.0.1:57469 TIME_WAIT

应该有一个热修复 - 在以前的答案中但它没有用。热修复在这里:

http://support.microsoft.com/kb/2577795

我之前使用过类似的代码,但我没有进行序列化,而是直接将数据作为字节数组发送,而且效果非常好。除了使用我创建的封装类和序列化过程之外,我发现代码之间没有任何区别。

谁能解释一下我做错了什么?

谢谢。

===========================================

我找到了一个简单的方法来重现这个问题:

首先创建一个具有以下方法的 VB.NET 网络服务:

<WebMethod(enablesession:=False)> _
Public Function HelloWorld() As Byte()
Dim B(0 To 1000) As Byte
Return B
End Function

接下来为它创建一个客户端如下:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim T As New ServiceReference1.Service1SoapClient
T.Open()
Dim I As Integer
For I = 0 To 1000000
T.HelloWorld()
Me.Text = I
Application.DoEvents()
Next
End Sub

你会得到这个错误。希望有人对此有解决方案。

最佳答案

尝试在调用之间关闭/处置客户端。


对于 I 作为整数 = 0 到 1000000
使用 T 作为新的 ServiceReference1.Service1SoapClient
T.Open()
T.HelloWorld()
我.Text = I
结束使用
应用程序.DoEvents()
下一个

关于vb.net - 解决: Insufficient winsock resources available to complete socket connection initiation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591708/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com