同意sunsatan的看法,没必要使用那么大量的内存。自要在server端开一个监听的UDP口,让学生机POST开机信息,然后通过这些信息去获取那边的资料就是了。虽然server监听的方法比较经典。至于winsock的动态加载 我建议你在窗体上放个wserver,index为1 然后在form的load里 for i=2 to 300 load wserver(i) next 就可以了。
在模块中 dim wserver set wserver=frmMain.WsockHOHO,就有一个可以调用的全局变量了,嘿。投机取巧的解决方案。
源代蚂蚁 dim wserver set wserver=frmMain.Wsock我试过了,可是运行时出错,弹出"要求对象"的错误信息 阿飞能不能说详细些 平平,:sunsatan,我给你们写信了,给我代码呀! 求求各位大哥了,小弟的毕业设计,没几天了!拜托了
这是服务端的代码: Dim intClientNumber As Integer Option ExplicitPrivate Sub Form_Load() wskServer(0).Close wskServer(0).LocalPort = 12321 wskServer(0).Listen intClientNumber = 0 End SubPrivate Sub wskServer_Close(Index As Integer) wskServer(Index).Close Call CountClientConnect End SubPrivate Sub wskServer_ConnectionRequest(Index As Integer, ByVal requestID As Long) Dim intTemp As Integer
For intTemp = 1 To intClientNumber If wskServer(intTemp).State <> 7 Then wskServer(intTemp).Close wskServer(intTemp).Accept (requestID) lstClientInfo.AddItem ("与 " & wskServer(Index + 1).RemoteHostIP & " 建立连接。") Call CountClientConnect Exit Sub End If Next intClientNumber = intClientNumber + 1 Load wskServer(intClientNumber) wskServer(intClientNumber).Close wskServer(intClientNumber).Accept (requestID) lstClientInfo.AddItem ("与 " & wskServer(Index + 1).RemoteHostIP & " 建立连接。") Call CountClientConnect End SubPrivate Sub CountClientConnect() Dim intTemp As Integer Dim intCount As Integer
For intTemp = 1 To intClientNumber If wskServer(intTemp).State = 7 Then intCount = intCount + 1 End If Next lblMessage.Caption = "有 " & intCount & " 个客户端连接上了。" End Sub 这是客户端的代码: Dim lonErrorCode As Long Option Explicit Private Sub cmdConnect_Click() wskClient.Close wskClient.RemoteHost = txtServerAddress.Text wskClient.RemotePort = txtServerPort.Text wskClient.Connect lstCurrentInfo.AddItem ("与 " & wskClient.RemoteHost & " 进行连接。") End SubPrivate Sub cmdDisConnect_Click() wskClient.Close lstCurrentInfo.AddItem ("断开与 " & wskClient.RemoteHost & " 的连接。") End SubPrivate Sub wskClient_Close() wskClient.Close lstCurrentInfo.AddItem ("与 " & wskClient.RemoteHost & " 断开连接。") End SubPrivate Sub wskClient_Connect() lstCurrentInfo.AddItem ("与 " & wskClient.RemoteHost & " 建立连接。") End Sub如果有不清楚的,可以和我联系: [email protected]
[email protected]
[email protected]
拜托了。
可出错,说什么"无效使用new 关键字
救救我,兄弟真的没救了,
我试着这样做:public wserver as winsock
然后赋值:wserver.index=0
但是说什么无效的参数值
求各位英雄,大哥大姐,帮帮小弟,实在痛苦呀
决不多用你的系统资源。你上来就加300个程序不死才怪!
要代码和我联系。我的email:[email protected]
我建议你在窗体上放个wserver,index为1
然后在form的load里
for i=2 to 300
load wserver(i)
next
就可以了。
小弟的程序是在服务机上运行客户端,而客户机上来诊听连接,当条件满足,服务机发送"启用"信息给客户机,同时发送可用时间给用户机,当时间终止,用户机发送关闭信息给服务器,使用TCP连接,主要是考虑UDP不太可靠,想使用1个winsock控件来实现,但又觉得颇为难,总不能频繁的断开\连接,还无法接收客户机信息,但是如何在模块中定义winsock控件,以及如何初始化,才能够自动加载,大哥们能否帮助小弟一下,
dim wserver
set wserver=frmMain.WsockHOHO,就有一个可以调用的全局变量了,嘿。投机取巧的解决方案。
dim wserver
set wserver=frmMain.Wsock我试过了,可是运行时出错,弹出"要求对象"的错误信息
阿飞能不能说详细些
平平,:sunsatan,我给你们写信了,给我代码呀!
求求各位大哥了,小弟的毕业设计,没几天了!拜托了
Dim intClientNumber As Integer
Option ExplicitPrivate Sub Form_Load()
wskServer(0).Close
wskServer(0).LocalPort = 12321
wskServer(0).Listen
intClientNumber = 0
End SubPrivate Sub wskServer_Close(Index As Integer)
wskServer(Index).Close
Call CountClientConnect
End SubPrivate Sub wskServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim intTemp As Integer
For intTemp = 1 To intClientNumber
If wskServer(intTemp).State <> 7 Then
wskServer(intTemp).Close
wskServer(intTemp).Accept (requestID)
lstClientInfo.AddItem ("与 " & wskServer(Index + 1).RemoteHostIP & " 建立连接。")
Call CountClientConnect
Exit Sub
End If
Next
intClientNumber = intClientNumber + 1
Load wskServer(intClientNumber)
wskServer(intClientNumber).Close
wskServer(intClientNumber).Accept (requestID)
lstClientInfo.AddItem ("与 " & wskServer(Index + 1).RemoteHostIP & " 建立连接。")
Call CountClientConnect
End SubPrivate Sub CountClientConnect()
Dim intTemp As Integer
Dim intCount As Integer
For intTemp = 1 To intClientNumber
If wskServer(intTemp).State = 7 Then
intCount = intCount + 1
End If
Next
lblMessage.Caption = "有 " & intCount & " 个客户端连接上了。"
End Sub
这是客户端的代码:
Dim lonErrorCode As Long
Option Explicit
Private Sub cmdConnect_Click()
wskClient.Close
wskClient.RemoteHost = txtServerAddress.Text
wskClient.RemotePort = txtServerPort.Text
wskClient.Connect
lstCurrentInfo.AddItem ("与 " & wskClient.RemoteHost & " 进行连接。")
End SubPrivate Sub cmdDisConnect_Click()
wskClient.Close
lstCurrentInfo.AddItem ("断开与 " & wskClient.RemoteHost & " 的连接。")
End SubPrivate Sub wskClient_Close()
wskClient.Close
lstCurrentInfo.AddItem ("与 " & wskClient.RemoteHost & " 断开连接。")
End SubPrivate Sub wskClient_Connect()
lstCurrentInfo.AddItem ("与 " & wskClient.RemoteHost & " 建立连接。")
End Sub如果有不清楚的,可以和我联系:
[email protected]
如果哪位大虾能够知道如何在模块中声明一全局winsock控件变量,并怎样在main窗体中初始化,使其index属性为0.千万要告诉小弟呀