求个中转站的TCP/IP转发程序
现在要做个一对三的转发程序,不用对数据进行处理,就负责转发,我方向一点都没,请各位大虾给点意见,最好有源代码.
1.中转站从上级服务器接受数据后,然后发送给下级的三个服务器.
2.服务器发送给中转站的数据类型有Integer,long,byte,char等,中转站接受数据时声明的变量应该声明成什么类型?
[解决办法]
Private isWinCount(100) As Boolean '设置服务器只能进行100个客户端确认'我的程序是这样的。'我一个Winsock 专门用于监听,监听别的客户端与取连接.'我还有N个Winsock 控件用于分别与其它客户端建立连接.'每次都是先由Winsock1(0)监听到有客户端连接,则再发个新的端口过去'让其与找到的空闲Winsock进行连接Private Sub Form_Load() For i = 1 To 100 Load Winsock1(i) isWinCount(100) = True '设置为空闲 Next Winsock1(0).LocalPort = "4000" Winsock1(0).ListenEnd SubPrivate Sub Winsock1_Close(Index As Integer)If Index <> 0 Then isWinCount(Index) = TrueEnd IfEnd SubPrivate Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)If Index = 0 Then Dim cIndex As Long Winsock1(0).Close Winsock1(0).Accept requestID cIndex = 6000 + GetIndex Winsock1(0).SendData "B" & cIndex '发送空闲端口过去让客户端重新连接 isWinCount(cIndex - 6000) = False Winsock1(cIndex - 6000).LocalPort = cIndex Winsock1(cIndex - 6000).ListenElse Winsock1(Index).Close Winsock1(Index).Accept requestID Dim buff(3) As Byte buff(0) = 74 buff(1) = 123 buff(2) = 76 buff(3) = 48 Winsock1(Index).SendData ByVal buff End IfEnd SubPrivate Function GetIndex() As Long '此方法是取得服务器空闲端口 For i = 1 To 100 If isWinCount(i) = True Then GetIndex = i Exit Function End If NextEnd FunctionPrivate Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim strData As String Winsock1(i).GetData strData Case Mid(strData, 1, 1) '分析接收到的字串。比如:我是分析第一个字符,是1表示 发送至1号机.... Case 1 Winsock1(1).SendData 分析后的数据 Case 2 Winsock1(2).SendData 分析后的数据 Case 3 Winsock1(3).SendData 分析后的数据 'case .... End SelectEnd Sub