1 Ανοίξτε το Microsoft Visual Basic Express , κάντε κλικ στο " New Project ... " στο αριστερό τμήμα της οθόνης σας , στη συνέχεια, επιλέξτε " Εφαρμογή κονσόλας . " Κάντε κλικ στο " OK". 2
Πατήστε το " Ctrl " και " A " και στη συνέχεια πατήστε το κουμπί " Διαγραφή " για να αφαιρέσετε όλα τα υπάρχοντα κώδικα . Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο " Module1.vb " σας για να δημιουργήσετε την εφαρμογή διακομιστή :
εισαγωγές System.Net.Sockets
Εισαγωγές System.Text
Module Module1
Dim hshTbl Όπως New Hashtable
Sub Main ( )
Dim svrSckt Όπως New TcpListener ( 8888 )
Dim tClient Όπως TcpClient
Dim infntCntr As Integer
Dim cntr As Integer
svrSckt.Start ( )
msg ( "Ο διακομιστής Ξεκίνησε για κουβέντα ...." )
cntr = 0
infntCntr = 0
Για infntCntr = 1 να 2
infntCntr = 1
cntr + = 1
tClient = svrSckt.AcceptTcpClient ( )
Dim btsFrom ( 10024 ) Όπως Byte
Dim clientData Όπως String Dim
networkStream Όπως 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
εκπομπή ( clientData + " έχει ενταχθεί » , clientData , False )
msg ( clientData + " έχει ενταχθεί δωμάτιο συνομιλίας " )
Dim πελάτη As New handleClinet
client.startClient ( tClient , clientData , Υπο
Sub msg ( ByVal msg Όπως String )
msg.Trim ( )
Console.WriteLine ( " >> " + msg )
End Sub
Private Sub εκπομπή ( ByVal msg Όπως String , _
ByVal usrName Όπως String , ByVal τΊα Όπως Boolean )
Dim dicEntry Όπως DictionaryEntry
Για Κάθε dicEntry Σε hshTbl
Dim broadcastSocket Όπως TcpClient
broadcastSocket = ctype ( dicEntry.Value , TcpClient )
Dim broadcastStream Όπως NetworkStream = _
broadcastSocket.GetStream ( )
Dim broadcastBytes Όπως [ Byte ] ( )
Αν τΊα = True τότε
broadcastBytes = Encoding.ASCII.GetBytes ( usrName + " λέει : " + msg )
υπόλοιπα
broadcastBytes = Encoding.ASCII.GetBytes ( msg )
End If
broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . μήκος)
broadcastStream.Flush ( )
Επόμενο
End Sub
Δημόσιας Τάξης handleClinet
Dim tClient Όπως TcpClient
Dim νόνη Όπως String Dim
hshTbl Όπως Hashtable
Public Sub startClient ( ByVal inClientSocket Όπως TcpClient , _
ByVal clnNum As String , ByVal hsTbl Όπως Hashtable )
Me.tClient = inClientSocket
Me.clNo = clnNum
Me.hshTbl = hsTbl
Dim ctThread Όπως Threading.Thread = Νέα Threading.Thread ( AddressOf doChat )
ctThread.Start ( )
End Sub
Private Sub doChat ( )
Dim infntCntr As Integer
Dim rqstCnt As Integer
Dim btsFrom ( 10024 ) Όπως Byte
Dim clientData Όπως String Dim
btsSend Όπως [ Byte ] ( )
Dim responseSrvr As String
Dim rCnt Όπως String
rqstCnt = 0
Για infntCntr = 1 να 2
infntCntr = 1
Δοκιμάστε
rqstCnt = rqstCnt + 1
Dim networkStream Όπως networkStream = _
tClient.GetStream ( )
networkStream.Read ( btsFrom , 0 , CInt ( tClient.ReceiveBufferSize ) )
clientData = System.Text.Encoding.ASCII.GetString ( btsFrom )
clientData = _
clientData.Substring ( 0 , clientData.IndexOf ( " $ " ) )
msg ( «Από τον πελάτη : " + νόνη + " : " + clientData )
rCnt = Convert.ToString ( rqstCnt )
εκπομπή ( clientData , νόνη , Αληθές)
Catch ex Όπως Εξαίρεση
MsgBox ( ex.ToString )
End Δοκιμάστε
Επόμενο
End Sub
End Class
End Module
εικόνων 3
Ανοίξτε ένα νέο παράδειγμα της Microsoft Visual Basic Express , κάντε κλικ στο " New Project ... " στο αριστερό τμήμα του σας οθόνη , στη συνέχεια, επιλέξτε " Windows Forms Application . " κάντε κλικ στο κουμπί "OK". κάντε κλικ στο " Toolbox" παράθυρο , στη συνέχεια, κάντε διπλό κλικ στο " πλαίσιο κειμένου " για να προσθέσετε ένα νέο πλαίσιο κειμένου . Προσθήκη δύο πλαίσια κειμένου χρησιμοποιώντας την ίδια μέθοδο . Προσθήκη δύο κουμπιά από το μενού « Εργαλεία » .
Η
4 κάντε διπλό κλικ στο έντυπο , Πατήστε το πλήκτρο " Ctrl " και " A " και στη συνέχεια πατήστε το κουμπί " Διαγραφή " για να αφαιρέσετε όλα τα υπάρχοντα κώδικα . Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στη συσκευή σας " Form1.vb " ενότητα για να δημιουργήσετε το πρόγραμμα-πελάτη :
εισαγωγές System.Net.Sockets
Εισαγωγές System.Text
Δημόσιας Τάξης Φόρμα1
Dim clntSckt Όπως New System.Net.Sockets.TcpClient ( )
Dim srvrStrm Όπως NetworkStream
Dim rddata Όπως String Dim
infCntr As Integer
Private Sub Button1_Click ( ByVal αποστολέα Όπως System.Object , _
ByVal e Όπως System.EventArgs ) Λαβές Button1.Click
Dim streamOut Όπως Byte ( ) = _
System.Text . Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " )
srvrStrm.Write ( streamOut , 0 , streamOut.Length )
srvrStrm.Flush ( )
End Sub
Private Sub msg ( )
Εάν Me.InvokeRequired τότε
Me.Invoke ( New MethodInvoker ( AddressOf msg ) )
Else
TextBox1.Text = TextBox1.Text + + Environment.NewLine " >> " + rddata
End If
End Sub
Private Sub Button2_Click ( ByVal αποστολέα Όπως System.Object , _
ByVal e Όπως System.EventArgs ) Λαβές Button2.Click
rddata = " συνδεμένο στον διακομιστή συνομιλίας ... "
msg ( )
clntSckt.Connect ( " 127.0.0.1 " , 8888 )
srvrStrm = clntSckt.GetStream ( )
Dim streamOut Όπως Byte ( ) = _
System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $ " )
srvrStrm.Write ( streamOut , 0 , streamOut.Length )
srvrStrm.Flush ( )
Dim ctThread Όπως Threading.Thread = Νέα Threading.Thread ( AddressOf GetMessage )
ctThread.Start ( )
Sub End
Private Sub GetMessage ( )
Για infCntr = 1 να 2
infCntr = 1
srvrStrm = clntSckt.GetStream ( )
Dim buffSize As Integer
Dim instream ( 10024 ) Όπως Byte
buffSize = clntSckt.ReceiveBufferSize
srvrStrm.Read ( instream , 0 , buffSize )
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString ( instream )
rddata = " " + returndata
msg ( )
Επόμενο
End Sub
End Class
5
Εκτελέστε το πρόγραμμα διακομιστή για πρώτη φορά από το πλήκτρο " F5 ". Ξεκινήστε το πρόγραμμα-πελάτη πατώντας το πλήκτρο " F5 ". Πληκτρολογήστε το όνομά σας " TextBox3 , " και στη συνέχεια κάντε κλικ στο κουμπί " button2 " για να δημιουργήσει μια σύνδεση με το πρόγραμμα server .
Η 6
Πληκτρολογήστε ένα μήνυμα στο " TextBox2 , "και στη συνέχεια κάντε κλικ στο κουμπί " Button1 " για να στείλετε το μήνυμά σας . το μήνυμα θα εμφανιστεί στο παράθυρο εξόδου της διακομιστή.
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα