Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 Spustite program Microsoft Visual Basic Express a potom kliknite na tlačidlo " Nový projekt " . V ľavej table obrazovky , zvoľte " Aplikácia konzoly . " Kliknite na tlačidlo " OK " . 
 2 
 Stlačte tlačidlo " Ctrl " + " A " , a potom stlačte tlačidlo " Delete " . Skopírujte a vložte nasledujúci kód do vášho " Module1.vb " vytvoriť program servera: 
 
 Dovoz System.Net.Sockets 
 
 Dovoz System.Text 
 
 Module Module1 
 
 Dim clientsList Ako Nový Hashtable 
 
 Sub Main ( ) 
 
 Dim ServerSocket As New TcpListener ( 8888 ) 
 
 Dim clientSocket Ako TcpClient 
 
 Dim infiniteCounter As Integer 
 
 Dim počítadlo As Integer 
 
 serverSocket.Start ( ) 
 
 MSG ( " Rozprávať server bol spustený .... " ) 
 
 counter = 0 
 
 infiniteCounter = 0 
 
 infiniteCounter = 1 K 2 
 
 infiniteCounter = 1 
 
 counter + = 1 
 
 clientSocket = serverSocket.AcceptTcpClient ( ) 
 
 Dim bytesFrom ( 10024 ) Ako Byte 
 
 Dim dataFromClient As String Dim 
 
 NetworkStream As NetworkStream = _ 
 
 clientSocket.GetStream ( ) 
 
 networkStream.Read ( bytesFrom , 0 , CInt ( clientSocket.ReceiveBufferSize ) ) 
 
 dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom ) 
 
 dataFromClient = _ 
 
 dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( " $ " ) ) 
 
 clientsList ( dataFromClient ) = clientSocket 
 
 vysielania ( dataFromClient + " Pripojený " , dataFromClient , false ) 
 
 msg ( dataFromClient + " Pridali sa do konverzačnej miestnosti " ) 
 
 Dim klient ako New handleClinet 
 
 client.startClient ( clientSocket , dataFromClient , Sub 
 
 Sub msg ( ByVal MESG As String ) 
 
 mesg.Trim ( ) 
 
 Console.WriteLine ( " >> " + MESG ) 
 
 End Sub 
 
 Private Sub vysielania ( byVal msg As String , _ byVal 
 
 uname As String , byVal vlajky As Boolean ) 
 
 Dim položky ako DictionaryEntry 
 
 Pre každú položku v clientsList 
 
 Dim broadcastSocket Ako TcpClient 
 
 broadcastSocket = Cdruh ( Item.Value , TcpClient ) 
 
 Dim broadcastStream Ako NetworkStream = _ 
 
 broadcastSocket.GetStream ( ) 
 
 Dim broadcastBytes As [ Byte ] ( ) 
 
 flag = True Then 
 
 broadcastBytes = Encoding.ASCII.GetBytes ( uname + " hovorí : " + msg ) 
 
 Else 
 
 broadcastBytes = Encoding.ASCII.GetBytes ( msg ) 
 
 End If 
 
 broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . dĺžka ) 
 
 broadcastStream.Flush ( ) 
 
 Ďalšie 
 
 End Sub 
 
 Public Class handleClinet 
 
 Dim ClientSocket ako TcpClient 
 
 Dim ClNO As String Dim 
 
 clientsList Ako Hashtable 
 
 Public Sub startClient ( byval inClientSocket Ako TcpClient , _ byVal 
 
 clineNo As String , byval CList Ako Hashtable ) 
 
 Me.clientSocket = inClientSocket 
 
 Me.clNo = clineNo 
 
 Me.clientsList = CList 
 
 Dim ctThread Ako Threading.Thread = Nové Threading.Thread ( AddressOf doch ) 
 
 ctThread.Start ( ) 
 
 End Sub 
 
 Private Sub doch ( ) 
 
 Dim infiniteCounter As Integer Dim 
 
 requestCount As Integer 
 
 Dim bytesFrom ( 10024 ) Ako Byte 
 
 Dim dataFromClient As String Dim 
 
 sendBytes As Byte [ ] ( ) 
 
 Dim serverResponse As String 
 
 Dim RCount As String 
 
 requestCount = 0 
 
 infiniteCounter = 1 K 2 
 
 infiniteCounter = 1 
 
 Skúste 
 
 requestCount = requestCount + 1 
 
 Dim NetworkStream Ako NetworkStream = _ 
 
 clientSocket.GetStream ( ) 
 
 networkStream.Read ( bytesFrom , 0 , CInt ( clientSocket.ReceiveBufferSize ) ) 
 
 dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom ) 
 
 dataFromClient = _ 
 
 dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( " $ " ) ) 
 
 msg ( " Od klienta - " + ClNO + " : " + dataFromClient ) 
 
 RCount = Convert.ToString ( requestCount ) 
 
 vysielania ( dataFromClient , ClNO , pravda ) 
 
 Chytiť ex ako výnimka 
 
 MsgBox ( ex.ToString ) 
 
 End Try 
 
 Ďalšie 
 
 End Sub 
 
 End Class 
 
 End Module 
 3 
 spustite program Microsoft Visual Basic Express a potom kliknite na tlačidlo " Nový projekt . " na ľavej table obrazovky , zvoľte " windows Forms . " Kliknite na tlačidlo " OK " . Kliknite na " Nástroje " panel , a potom dvakrát kliknite na " textové pole " pridať nové textové pole . Pridať dve textové polia . Pridať dve tlačidlá z menu " Nástroje " . 
 Stránka 4 
 Dvakrát kliknite na formulár a potom stlačte tlačidlo " Ctrl " + " A. " Stlačte tlačidlo " Delete " . skopírujte a vložte nasledujúci kód do vášho " Form1.vb " modulu vytvoriť klientský program : 
 
 Dovoz System.Net.Sockets 
 
 Dovoz System.Text 
 
 Public Class Form1 
 
 Dim clientSocket As New System.Net.Sockets.TcpClient ( ) 
 
 Dim serverStream ako NetworkStream 
 
 Dim readData As String Dim 
 
 infiniteCounter As Integer 
 
 Private Sub Button1_Click ( byval odosielateľ ako Object , _ 
 
byval e ako System.EventArgs ) Kľuky Button1.Click klipart
 Dim outStream As Byte ( ) = _ 
 
 System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " ) 
 
 serverStream.Write ( outStream , 0 , outStream.Length ) 
 
 serverStream.Flush ( ) 
 
 End Sub 
 
 Private Sub msg ( ) 
 
 Ak Me.InvokeRequired Potom 
 
 Me.Invoke ( New MethodInvoker ( AddressOf msg ) ) 
 
 Else 
 
 TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + readData 
 
 End If 
 
 End Sub 
 
 Private Sub Button2_Click ( byval odosielateľ ako Object , _ 
 
 byval e ako System.EventArgs ) Kľuky Button2.Click 
 
 readData = " pripojených na serveri chate ... " 
 
 msg ( ) 
 
 clientSocket.Connect ( " 127.0.0.1 " , 8888 ) 
 
 ' Label1.Text = " Klient Socket Program - server pripojený ... " 
 
 serverStream = clientSocket.GetStream ( ) 
 
 Dim outStream ako Byte ( ) = _ 
 
 System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $ " ) 
 
 serverStream.Write ( outStream , 0 , outStream.Length ) 
 
 serverStream.Flush ( ) 
 
 Dim ctThread Ako Threading.Thread = Nové Threading.Thread ( AddressOf GetMessage ) 
 
 ctThread.Start ( ) 
 
 End Sub 
 
 Private Sub GetMessage ( ) 
 
 infiniteCounter = 1 K 2 
 
 infiniteCounter = 1 
 
 serverStream = clientSocket.GetStream ( ) 
 
 Dim buffSize As Integer 
 
 Dim vo videu ( 10024 ) Ako Byte 
 
 buffSize = clientSocket.ReceiveBufferSize 
 
 serverStream.Read ( vo videu , 0 , buffSize ) 
 
 Dim returndata As String = _ 
 
 System.Text.Encoding.ASCII.GetString ( vo videu ) 
 
 readData = " " + returndata 
 
 msg ( ) 
 
 Ďalšie 
 
 End Sub End Class 
 
 
 5 
 spustite program servera najprv stlačením tlačidla " F5 " , a potom spustite program klienta . Zadajte svoje meno " Textbox3 " a kliknite na tlačidlo " Button2 " pre pripojenie k serveru . Napíšte správu v " TextBox2 , " a potom kliknite na tlačidlo " Button1 " odoslať správu .