请各位大哥路过的进来看下..........
用WINSOCKET控件做TCP的转发程序,只转发信息.这转发程序有如下几个要求:
1.客户端和服务器连接不上或无故断开连接后会自动连接,自动连接次数为3次,会定时判断的网络的状态
2.转发程序的作用只为转发数据,服务器发送的数据是16进制的,转发程序发送的数据格式也是16进制
请各位大哥出手帮忙下!小弟感激不尽
客户端:
Private Sub Command1_Click()
Command1.Enabled = False
Command2.Enabled = True
If ipclient.Text = "" Then
MsgBox "IP不能为空"
Else
Winsockclient.Connect ipclient.Text, 1001
End If
If Winsockclient.State = sckConnecting Then Label3.Caption = "正连接"
If Winsockclient.State = sckClosed Then
Label3.Caption = "失 败"
Command1.Enabled = True
Command2.Enabled = False
End If
End Sub
Private Sub Command2_Click()
Dim x As String
If Winsockclient.State = sckClosed Then
MsgBox "未连接"
ElseIf Winsockclient.State = sckConnected Then
Label3.Caption = "已断开"
Winsockclient.Close
Command1.Enabled = True
Command2.Enabled = False
End If
End Sub
Private Sub Form_Load()
Winsockclient.RemotePort = 1001
Label3.Caption = "未连接"
Command1.Enabled = True
Command2.Enabled = False
End Sub
Private Sub textsend_Change()
Winsockclient.SendData textsend.Text
End Sub
Private Sub Winsockclient_Close()
Winsockclient.Close
MsgBox "与服务器断开连接"
Command1.Enabled = True
Command2.Enabled = False
Label3.Caption = "已断开"
End Sub
Private Sub Winsockclient_Connect()
Command1.Enabled = False
Command2.Enabled = True
Label3.Caption = "已连接"
End Sub
Private Sub Winsockclient_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Winsockclient.GetData str
Textget.Text = str
End Sub
服务器:
Private Sub Form_Load()
Winsockocc.LocalPort = 1001
Winsockocc.Listen
END IF
Private Sub Winsockserver_Close()
Winsockserver.Close
Label1.Caption = "已断开"
End Sub
Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
If Winsockserver.State <> sckClosed Then Winsockserver.Close
Winsockserver.Accept requestID
Winsocksever.SendData "ok"
Label1.Caption = "已经建立连接"
Winsockserver.SendData occdata
End Sub
Private Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Winsockserver.GetData str
If str = "Q" Then
Winsockserver.Close
Winsockserver.LocalPort = 1001
Winsockserver.Listen
End If
End Sub --------------------编程问答-------------------- 楼主,能否指明问题出在哪里? --------------------编程问答-------------------- 自己顶下!
各位大虾快来帮忙啊,拜托了
转发程序是不是把客户端和服务器的代码合一起就行了?
补充:这程序是1对1的,上下就1个服务器和客户端 --------------------编程问答-------------------- 我只会做独立的C/S,转发程序我不知道怎么做,就是是把客户端和服务器的代码合并在一起就可以了? --------------------编程问答-------------------- 怎么没人来的啊,难道是我讲不太清楚?
PS:现在有A,B,C三台电脑,A把数据包发送给B,B再把数据包转发给C.
数据包的发送与发送是不是和一般数据的接受都一样?
DIM AAA AS BYTE
WINSOCK1.GETDATA AAA
现在电脑B上的转发程序怎么做,请各位大虾帮帮忙, --------------------编程问答-------------------- 我第一次做网络数据包转发器,请各位大虾帮我看下我的程序对不对?
如果网络连接失败,重复连接3次的定时器 timer控件的用法是什么样,应该放在哪里
Private Sub Command1_Click()
Command1.Enabled = False
Command2.Enabled = True
If ipclient.Text = "" Then
ipclient.SetFocus
MsgBox "服务器IP不能为空"
ElseIf Text2.Text = "" Then
Text2.SetFocus
MsgBox "服务器端口不能为空"
Else
Winsockclient.Connect ipclient.Text, Text2.Text
End If
If Winsockclient.State = sckConnecting Then Label3.Caption = "与服务器正在连接"
If Winsockclient.State = sckClosed Then
Label3.Caption = "与服务器连接失败"
Command1.Enabled = True
Command2.Enabled = False
End If
End Sub
Private Sub Command2_Click()
Dim x As String
If Winsockclient.State = sckClosed Then
MsgBox "与服务器未连接"
ElseIf Winsockclient.State = sckConnected Then
Label3.Caption = "与服务器已断开"
Winsockclient.Close
Command1.Enabled = True
Command2.Enabled = False
End If
End Sub
Private Sub Form_Load()
'Winsockclient.RemotePort =1001
ipserver.Text = Winsockserver.LocalIP
Winsockserver.LocalPort = 1002
Winsockserver.Listen
Text1.Text = Winsockserver.LocalPort
'中转站作为服务器时
Label3.Caption = "未连接"
Command1.Enabled = True
Command2.Enabled = False
End Sub
'Winsockserver.LocalPort = Text1.Text
'Winsockserver.Listen
Private Sub textsend_Change()
Winsockserver.SendData textsend.Text
End Sub
Private Sub Winsockclient_Close()
Winsockclient.Close
MsgBox "与服务器断开连接"
Command1.Enabled = True
Command2.Enabled = False
Label3.Caption = "已断开"
End Sub
Private Sub Winsockclient_Connect()
Command1.Enabled = False
Command2.Enabled = True
Label3.Caption = "与服务器已连接"
End Sub
Private Sub Winsockclient_DataArrival(ByVal bytesTotal As Long)
Dim str As String
Dim at As String
Winsockclient.GetData str
Winsockserver.SendData str
End Sub
Private Sub Winsockserver_Close()
Winsockserver.Close
MsgBox "与客户端断开连接"
Winsockserver.LocalPort = Text1.Text
Winsockserver.Listen
End Sub
Private Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)
If Winsockserver.State <> sckClosed Then Winsockserver.Close
Winsockserver.Accept requestID
End Sub
--------------------编程问答-------------------- 有问题请先GOOGLE,BAIDU --------------------编程问答-------------------- 1,首先应该给出错误信息
2.自己调试下问题代码大概在哪里?
补充:VB , 网络编程