我有一个使用winsock的VB应用程序。我想将其转换为VB.Net,所以据我了解,我应该使用System.net.sockets来完成此操作。如何创建多个套接字作为索引
但问题是在VB应用程序中使用winsock的索引功能创建多个套接字。例如
荷载插座(的ISocket)
其中的ISocket是每次递增,对于新的连接请求的整数变量。
那么,我该怎么做,即。在vb.net中打开多个套接字?
我有一个使用winsock的VB应用程序。我想将其转换为VB.Net,所以据我了解,我应该使用System.net.sockets来完成此操作。如何创建多个套接字作为索引
但问题是在VB应用程序中使用winsock的索引功能创建多个套接字。例如
荷载插座(的ISocket)
其中的ISocket是每次递增,对于新的连接请求的整数变量。
那么,我该怎么做,即。在vb.net中打开多个套接字?
在VB6中,Winsock是一个OCX,所以你通过调用Load Socket(Index)
正在创建一个新的ActiveX控件实例。有没有这样相当于在VB.NET所以你可能要做的就是创建System.Net.Sockets.Socket的集合:
Dim collSockets As New Collection(Of System.Net.Sockets.Socket)
当你得到一个新的连接请求,创建在一个新项目收藏:
Dim sck As New System.Net.Sockets.Socket(**Initialise Your New Socket Here**)
collSockets.Add(sck)
然后你就可以(从零开始)通过索引访问您的插座:
collSockets(0).Whatever()
谢谢,好主意..但是我试过了代码..你能让我知道为什么我得到这个错误信息 - 错误'Microsoft.VisualBasic.Collection'has没有类型参数,所以不能有类型参数 – user733957 2011-05-10 14:54:33
@ user733957是的,你需要在你的类的顶部使用这个'Imports System.Collections.ObjectModel' – 2011-05-10 15:01:13
Dude ...你是一个...非常感谢... – user733957 2011-05-10 15:06:31
然后,我们可以做这样的事情:
dim x as integer = 0
x += 1
collSockets(x).Whatever()
这将在每个事件做出新的插座和X将增加一倍,会像
collSocket(1).Whatever()
x+= 1
collSocket(2).Whatever()
等等
请为你的答案付出一些努力。即使在确定格式和拼写正确之后,这也是难以理解的。 – 2012-09-16 12:37:32
创建'System.Net.Sockets.Socket'的新实例类?使用'New'关键字来调用构造函数方法。 – 2011-05-10 14:04:28
是创建实例,但我希望它索引。所以,我可以通过索引值调用/引用它.... – user733957 2011-05-10 14:30:49
因此,将这些实例放入一个数组中,就像在VB 6中一样。唯一不同的是* all *数组在零索引.NET,无论如何。 – 2011-05-10 14:31:13