想问一下 在tcp下是不是就用不指定localhost,localip什么的,具体的我用?//在程序里注释了,清大家帮我指点一二!
Private Sub Form_Load()
' 使用 TCP Protocol
WskServer.Protocol = sckTCPProtocol
' 设置本 Server 的 IP地址
txtServerIP = WskServer.LocalIP ?//是不是只要是sckTCPProtocol,就自动取得localIP,不需要在指定?End SubPrivate Sub WskServer_ConnectionRequest(ByVal requestID As Long)
If WskServer.State = sckConnected Then
MsgBox "Server is already connected!", vbCritical
Exit Sub
End If
WskServer.Close ?//为什么这里就要关闭了?那下边怎么还可以执行accept?
' 接受来自 Client 端的请求
WskServer.Accept requestID
lblServerStatus = "Processing Connection."
lstServerLog.AddItem Time & " - " & "Client Connected"
' 传送信息回 Client 端
WskServer.SendData "CLOSE"
DoEvents
WskServer.Close
cmdListen.Enabled = True
lblServerStatus = "Server Idle"
End Sub在客户端
Private Sub Form_Load()
WskClient.Protocol = sckTCPProtocol ?//这里是不是真的可以不像udp一样需要指定主机,端口?是在程序执行的时候再指定么?
End Sub
Private Sub Form_Load()
' 使用 TCP Protocol
WskServer.Protocol = sckTCPProtocol
' 设置本 Server 的 IP地址
txtServerIP = WskServer.LocalIP ?//是不是只要是sckTCPProtocol,就自动取得localIP,不需要在指定?End SubPrivate Sub WskServer_ConnectionRequest(ByVal requestID As Long)
If WskServer.State = sckConnected Then
MsgBox "Server is already connected!", vbCritical
Exit Sub
End If
WskServer.Close ?//为什么这里就要关闭了?那下边怎么还可以执行accept?
' 接受来自 Client 端的请求
WskServer.Accept requestID
lblServerStatus = "Processing Connection."
lstServerLog.AddItem Time & " - " & "Client Connected"
' 传送信息回 Client 端
WskServer.SendData "CLOSE"
DoEvents
WskServer.Close
cmdListen.Enabled = True
lblServerStatus = "Server Idle"
End Sub在客户端
Private Sub Form_Load()
WskClient.Protocol = sckTCPProtocol ?//这里是不是真的可以不像udp一样需要指定主机,端口?是在程序执行的时候再指定么?
End Sub
解决方案 »
- 是使用MSWinsock.Winsock的话,工程中要引用哪一个呀?
- [讨论]VB能否拦截其他应用程序中控件的消息~~
- 求教:用VB实现CRC校验(欧洲CCITT格式)
- 希望高手继续来探讨!
- 兄弟要做毕业设计,不知VB合适还是VF
- 使用Installshield打包vb数据库程序能否实现弹出对话框配置odbc的功能?
- 请教图形绘制
- sFileNames = Split(cd.FileName, Chr(32))中的SPLIT 是什么函数
- 关于VB Sniffer不工作的问题
- VB做一个数据库查询小程序,请教各位。谢谢
- 这么实现每2小时软件点击一次command?
- 和种控件,以及其数组,是不是线程呀
' 使用 TCP Protocol
WskServer.Protocol = sckTCPProtocol objTCP(intmax).LocalPort = 1001 '用于客户端连接用
objTCP(intmax).Listen '舰艇客户端的连接End SubPrivate Sub WskServer_ConnectionRequest(ByVal requestID As Long)
If WskServer.State = sckConnected Then
MsgBox "Server is already connected!", vbCritical
Exit Sub
End If
End Sub在客户端
Private Sub Form_Load()
WskClient.Protocol = sckTCPProtocol ?//这里是不是真的可以不像udp一样需要指定主机,端口?是在程序执行的时候再指定么?
With objTCP
.RemotePort = 1001 '设置为服务端的ip地址
.RemoteHost = Me.txtRemoteComputer.Text '连接的主机名
.Connect
End With
End Sub
按着你说的就是说也要事先设好remoteport and remotehost在client端
而在server只要设localport而不用localhost?or localIP?
Private Type ActiveUser
ClientIP As String ’记录客户的IP地址
ClientPort As Integer ’记录当前会话的端口
ClientID As Long ’记录客户的ID号码
ClientConnected As Boolean ’客户连接状态,True表示已连接,False表示没有连接
End Type
这里type 是类似于定义一个类么?
希望有人可以在vb上给我指点一二
如果localIP端口设为0的话,它是自动分配的问题二:为什么这里就要关闭了?那下边怎么还可以执行
winsock控件要建立连接,必须是没有处于监听状态的winsock控件问题三:这里是不是真的可以不像udp一样需要指定
它是默认的
1.是否一个winsock在accept之前,必须执行.close关闭监听状态?
2.在服务器端到底需要指定localhost(=localIp)和localpost?我理解为localhost不需要指定因该是它本身的ip因为他就是服务器,但localhost可以指定也可以不指定么?
3.再次问Private Type ActiveUser
................
End Type
第一次看到 是定义一个类?
如果还用这个socket,那么是的2。设置本 Server 的 IP地址?!
本地的监听地址是可以bind的,你要给它赋值?它是不可写的