具体的说就是:服务器上要为每个客户端建立一个winsock控件,这些控件可以共用同一个端口(我试过,可以用),也可以一个控件占用一个端口。
不知道这样有什么不同,对性能上有什么影响。
我的软件环境是:可能有20个客户端,最大可能有254台客户端,不知道用那种方式好。
5 个解决方案
#1
在服务器上用同一个端口好,像网站一样,均访问同一个端口80
在服务器上不用虚耗内存,使用同一个端口编程简单直观,
如果能想到在服务器上使用线程,那就更好效率
在服务器上不用虚耗内存,使用同一个端口编程简单直观,
如果能想到在服务器上使用线程,那就更好效率
#2
从性能上讲应该没有明显的影响,但是从系统资源,及编程,监控方便程度来讲来还用同一个端口好。
#3
回复 fs_windy(飛龍) :我是用vb写的,好像vb无法控制线程。
一 请教关于vb中如何使用线程
二 在vb的环境中,您认为共用端口好还是独立好
一 请教关于vb中如何使用线程
二 在vb的环境中,您认为共用端口好还是独立好
#4
VB中的线程好像要用ActiveX DLL来实现吧
还是共同端口好,
还是共同端口好,
#5
Private intMax As Long
Private Sub Form_Load()
intMax = 0
sckServer(0).LocalPort = 1001
sckServer(0).Listen
End Sub
Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
Load txtData(intMax)
End If
End Sub
winsock本来就是一个ocx支持多线程。不必手工写,用动态加载的控件数组,就可以了。上面是msdn的一个介绍,具体参见《Using the Winsock Control》“Accepting More than One Connection Request”
Private Sub Form_Load()
intMax = 0
sckServer(0).LocalPort = 1001
sckServer(0).Listen
End Sub
Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
Load txtData(intMax)
End If
End Sub
winsock本来就是一个ocx支持多线程。不必手工写,用动态加载的控件数组,就可以了。上面是msdn的一个介绍,具体参见《Using the Winsock Control》“Accepting More than One Connection Request”
#1
在服务器上用同一个端口好,像网站一样,均访问同一个端口80
在服务器上不用虚耗内存,使用同一个端口编程简单直观,
如果能想到在服务器上使用线程,那就更好效率
在服务器上不用虚耗内存,使用同一个端口编程简单直观,
如果能想到在服务器上使用线程,那就更好效率
#2
从性能上讲应该没有明显的影响,但是从系统资源,及编程,监控方便程度来讲来还用同一个端口好。
#3
回复 fs_windy(飛龍) :我是用vb写的,好像vb无法控制线程。
一 请教关于vb中如何使用线程
二 在vb的环境中,您认为共用端口好还是独立好
一 请教关于vb中如何使用线程
二 在vb的环境中,您认为共用端口好还是独立好
#4
VB中的线程好像要用ActiveX DLL来实现吧
还是共同端口好,
还是共同端口好,
#5
Private intMax As Long
Private Sub Form_Load()
intMax = 0
sckServer(0).LocalPort = 1001
sckServer(0).Listen
End Sub
Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
Load txtData(intMax)
End If
End Sub
winsock本来就是一个ocx支持多线程。不必手工写,用动态加载的控件数组,就可以了。上面是msdn的一个介绍,具体参见《Using the Winsock Control》“Accepting More than One Connection Request”
Private Sub Form_Load()
intMax = 0
sckServer(0).LocalPort = 1001
sckServer(0).Listen
End Sub
Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intMax = intMax + 1
Load sckServer(intMax)
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
Load txtData(intMax)
End If
End Sub
winsock本来就是一个ocx支持多线程。不必手工写,用动态加载的控件数组,就可以了。上面是msdn的一个介绍,具体参见《Using the Winsock Control》“Accepting More than One Connection Request”