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 .