小弟做设计,有CA的数字签名系统,现在只剩最后一个功能模块,WINSOCK通信:在客户端向服务器端发送一条查询命令,在服务器端的数据库里找出所要的用户,在客户端显示出此用户的编号,姓名,及密钥。变态的老师要我们必须用WINSOCK控件实现啊。。谁有类似的代码???
解决方案 »
- windows密码查看的程序.(高分请教)
- 帮我看看这个语句哪里有错啊?
- formA.show 和 formA.visible = true 尤甚麼區別?
- 想用WINSOCK做一个能在Inetnet上传送文件的东东,文件大小为500K到2M,不知能不能实现?
- 求vb中关于字符串的简单函数
- 我写了个看密码的程序(附源代码)
- 可能是vb.net的缺陷,高手快看!!
- vb里打印的实现方法有哪几种!~大家讨论
- 请教:怎样将当前日期(Now)写到数据库中去,数据库中的字段是datetime类型的,数据库用的是SQL Server 2000?急急急!谢谢!
- 请问,Ado和Adodc在性能能上有什么区别吗?
- 在測試對視圖進行增加時,出現未知的錯誤
- 求助高手
客户端发送数据.设置数据格式,服务器端对数据处理返回数据.
就这么简单.
Private Sub form_Load()
With Me
.SckServer(0).LocalPort = 1001 '本地端口
.SckServer(0).Listen '开始监听
End With
End SubPrivate Sub Form_Unload(Cancel As Integer)
Dim i As Long
For i = 1 To SckServer.Count - 1
If SckServer(i).State = 7 Then
SckServer(i).Close
End If
Next
SckServer(0).CloseEnd SubPrivate Sub SckServer_Close(Index As Integer)
Me.SckServer(Index).Close
Me.SckServer(Index).Tag = ""
End SubPrivate Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Long, l As Boolean, cou As Long, flag As Long
cou = 0
For i = 1 To Me.SckServer.Count - 1
If Me.SckServer(i).State = 0 And Not l Then
Me.SckServer(i).Accept (requestID)
flag = i
l = True
Else
cou = cou + 1
End If
Next
If Not l Then
i = Me.SckServer.Count
Load Me.SckServer(i)
flag = i
Me.SckServer(i).Accept (requestID)
End IfEnd Sub
Private Sub sckServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strData As String
SckServer(Index).GetData strData
Text1.Text = strData '这里写收到客户端的信息后处理信息的代码
End If
End SubPrivate Sub SckServer_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Call SckServer_Close(Index)
End Sub
客户端:
Private Sub form_Load()
With Me
.sckClient.RemoteHost = "192.168.0.46" '设置远程IP,本例设为本机。
.sckClient.RemotePort = 1001 '远程端口,就为server中的设置一样.
End With
sckClient.Connect
Text1.Text = "正在测试连接....."
End SubPrivate Sub Form_Unload(Cancel As Integer)
If Me.sckClient.State = 7 Then Me.sckClient.Close
' sckClient.SendData "QUIT"
End SubPrivate Sub sckClient_Close()
sckClient.Close
Text1.Text = "服务器未开启"
End SubPrivate Sub sckClient_Connect()
Text1.Text = "连接成功"
End SubPrivate Sub sckClient_ConnectionRequest(ByVal requestID As Long)
With Me
If .sckClient.State <> sckClosed Then .sckClient.Close
.sckClient.Accept (requestID)
End With
End SubPrivate Sub sckClient_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim strData As String
sckClient.GetData strData
Text1.Text = strData '这里写收到服务端的信息后处理信息的代码
End SubPrivate Sub sckClient_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
Call sckClient_Close
End Sub
由客户端发送"QUIT"信息到服务端:sckClient.SendData "QUIT" 而服务端收到"QUIT"信息后如何处理就要看你自己需要怎么处理了~~
Server(0)是什么意思?
为什么要Server(0)监听?
搞不懂...
还是麻烦高手解释一下子了...
一winsock控件(tcpServer)
一接收客户端的文本框(txtOutput)
一发送文本的文本框(txtSendData)
一发送按钮(Command1)
Private Sub Form_Load()
tcpServer.LocalPort = 1001
tcpServer.ListenEnd SubPrivate Sub Command1_Click()
tcpServer.SendData txtSendData.TextEnd SubPrivate Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then _
tcpServer.Close
tcpServer.Accept requestIDEnd SubPrivate Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strDataEnd Sub
客户端:
一winsock控件(tcpClient)
一接收客户端的文本框(txtOutput)
一发送文本的文本框(txtSend)
一连接服务器按钮(cmdConnect)
一发送按钮(Command1)Private Sub Command1_Click()
tcpClient.SendData txtSend.Text
End SubPrivate Sub Form_Load()
tcpClient.RemoteHost = "192.168.0.97"'指定远程主机
tcpClient.RemotePort = 1001
End SubPrivate Sub cmdConnect_Click()
tcpClient.Connect
End Sub
Private Sub tcpClient_Connect()
MsgBox "连接OK"
End SubPrivate Sub tcpClient_DataArrival _
(ByVal bytesTotal As Long)
Dim strData As String
tcpClient.GetData strData
txtOutput.Text = strData
End Sub这样够明了了吧。
可是离老师的要求还是有距离啊...
我抓狂了>>>>>>>>>>>>>>
在客户端向服务器端发送一条查询命令-->
客户端中的
Private Sub Command1_Click()
tcpClient.SendData txtSend.Text
End Sub
类似实现的啊,总不会说查询命令都要给你写出来吧?!!!服务端同理可得...........如果你连一点编程基础都没有的话,就不要来提问了。