Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Otvorte program Microsoft Visual Basic Express , kliknite na tlačidlo " Nový projekt ... " V ľavej table obrazovky , potom vyberte " Aplikácia konzoly . " Kliknite na tlačidlo " OK " .
2
Stlačte tlačidlo " Ctrl " a " , " a potom stlačte tlačidlo " Delete " odstrániť všetky existujúce kód . Skopírujte a vložte nižšie uvedený kód do vašej " Module1.vb " vytvoriť serverové aplikácie :
Dovoz System.Net.Sockets
Dovoz System.Text
Module Module1
Dim hshTbl Ako Nový Hashtable
Sub Main ( )
Dim svrSckt As New TcpListener ( 8888 )
Dim tClient Ako TcpClient
Dim infntCntr As Integer
Dim cntr As Integer
svrSckt.Start ( )
msg ( " server bol spustený pre chatovanie .... " )
cntr = 0
infntCntr = 0
infntCntr = 1 K 2
infntCntr = 1
Čítač + = 1
tClient = svrSckt.AcceptTcpClient ( )
Dim btsFrom ( 10024 ) Ako Byte
Dim clientData As String Dim
NetworkStream As NetworkStream = _
tClient.GetStream ( )
networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) )
clientData = System.Text.Encoding.ASCII.GetString ( btsFrom )
clientData = _
clientData.Substring ( 0 , clientData.IndexOf ( " $ " ) )
hshTbl ( clientData ) = tClient
vysielania ( clientData + " sa stal " , clientData , FALSE )
msg ( clientData + " sa stal chatovaciu miestnosť " )
Dim klient ako New handleClinet
client.startClient ( tClient , clientData , Sub
Sub msg ( ByVal msg As String )
msg.Trim ( )
Console.WriteLine ( " >> " + msg )
End Sub
Private Sub vysielania ( byVal msg As String , _ byVal
usrName As String , byVal FLG As Boolean )
Dim dicentra Ako DictionaryEntry
Pre každý dicentra V hshTbl
Dim broadcastSocket Ako TcpClient
broadcastSocket = Cdruh ( dicEntry.Value , TcpClient )
Dim broadcastStream Ako NetworkStream = _
broadcastSocket.GetStream ( )
Dim broadcastBytes As [ Byte ] ( )
Ak FLG = True Then
broadcastBytes = Encoding.ASCII.GetBytes ( usrName + " 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 tClient ako TcpClient
Dim ClNO As String Dim
hshTbl Ako Hashtable
Public Sub startClient ( byval inClientSocket Ako TcpClient , _ byVal
clnNum As String , byval hsTbl Ako Hashtable )
Me.tClient = inClientSocket
Me.clNo = clnNum
Me.hshTbl = hsTbl
Dim ctThread Ako Threading.Thread = Nové Threading.Thread ( AddressOf doch )
ctThread.Start ( )
End Sub
Private Sub doch ( )
Dim infntCntr As Integer Dim
rqstCnt As Integer
Dim btsFrom ( 10024 ) Ako Byte
Dim clientData As String Dim
btsSend As Byte [ ] ( )
Dim responseSrvr As String
Dim rCnt As String
rqstCnt = 0
infntCntr = 1 K 2
infntCntr = 1
Skúste
rqstCnt = rqstCnt + 1
Dim NetworkStream Ako NetworkStream = _
tClient.GetStream ( )
networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) )
clientData = System.Text.Encoding.ASCII.GetString ( btsFrom )
clientData = _
clientData.Substring ( 0 , clientData.IndexOf ( " $ " ) )
msg ( " Od klienta : " + ClNO + " : " + clientData )
rCnt = Convert.ToString ( rqstCnt )
vysielania ( clientData , ClNO , pravda )
Chytiť ex ako výnimka
MsgBox ( ex.ToString )
End Try
Ďalšie
End Sub
End Class
End Module
3
Otvorenie novej inštancie aplikácie Microsoft Visual Basic Express , kliknite na tlačidlo " Nový projekt ... " na ľavom paneli vášho obrazovke , vyberte " Windows Forms . " Kliknite na tlačidlo " OK " . Kliknite na " Nástroje " panel , dvakrát kliknite na tlačidlo " textové pole " pridať nové textové pole . Pridať dve textové polia pomocou rovnakej metódy . Pridať dve tlačidlá z menu " Nástroje " .
4
Dvakrát kliknite na formulár , stlačte " Ctrl " a " a " , potom stlačte tlačidlo " Delete " odstrániť všetky existujúce kód . skopírujte a vložte nižšie uvedený kód do vašich " Form1.vb " modul vytvoriť klientský program : Spojené
Dovoz System.Net.Sockets
Dovoz System.Text
Public Class Form1
Dim clntSckt ako nový System.Net.Sockets.TcpClient ( )
Dim srvrStrm ako NetworkStream
Dim rddata As String Dim
infCntr As Integer
Private Sub Button1_Click ( byval sender ako Object , _ byval
e As System.EventArgs ) Kľuky Button1.Click klipart
Dim streamOut ako Byte ( ) = _
System.Text . Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " )
srvrStrm.Write ( streamOut , 0 , streamOut.Length )
srvrStrm.Flush ( )
end Sub
Private Sub msg ( )
Ak Me.InvokeRequired Potom
Me.Invoke ( New MethodInvoker ( AddressOf msg ) )
Else
TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + rddata
End If
End Sub
Private Sub Button2_Click ( byval odosielateľa ako System.Object , _
byval e ako System.EventArgs ) Kľuky Button2.Click klipart
rddata = " pripojených na chate servera ... "
msg ( )
clntSckt.Connect ( " 127.0.0.1 " , 8888 )
srvrStrm = clntSckt.GetStream ( )
Dim streamOut Ako Byte ( ) = _
System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $ " )
srvrStrm.Write ( streamOut , 0 , streamOut.Length )
srvrStrm.Flush ( )
Dim ctThread Ako Threading.Thread = Nové Threading.Thread ( AddressOf GetMessage )
ctThread.Start ( )
End Sub
Private Sub GetMessage ( )
infCntr = 1 K 2
infCntr = 1
srvrStrm = clntSckt.GetStream ( )
Dim buffSize As Integer
Dim vo videu ( 10024 ) Ako Byte
buffSize = clntSckt.ReceiveBufferSize
srvrStrm.Read ( vo videu , 0 , buffSize )
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString ( vo videu )
rddata = " " + returndata
msg ( )
Ďalšie
End Sub
End Class
5
spustite program servera najprv stlačením " F5 " . spustite klientsky program stlačením tlačidla " F5 " . Zadajte svoje meno " Textbox3 , " kliknite na tlačidlo " button2 " nadviazať spojenie s programom servera .
6
Zadajte správu do " TextBox2 , " kliknite na tlačidlo " Button1 "odoslať správu . Správa sa zobrazí v okne výstup servera .