首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求个中转站的TCP/IP转发程序,该怎么解决

2012-02-08 
求个中转站的TCP/IP转发程序现在要做个一对三的转发程序,不用对数据进行处理,就负责转发,我方向一点都没,

求个中转站的TCP/IP转发程序
现在要做个一对三的转发程序,不用对数据进行处理,就负责转发,我方向一点都没,请各位大虾给点意见,最好有源代码.
1.中转站从上级服务器接受数据后,然后发送给下级的三个服务器.
2.服务器发送给中转站的数据类型有Integer,long,byte,char等,中转站接受数据时声明的变量应该声明成什么类型?

[解决办法]

VB code
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 

热点排行