Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Visual Βασικά Προγραμματισμός

Πώς να κάνει ένα δωμάτιο συνομιλίας σε Visual Basic Express

Έχοντας τη γνώση για το πώς να δημιουργήσετε ένα chat room χρησιμοποιώντας το Microsoft Visual Basic Express μπορεί να σας εξοικονομήσει χρόνο που θα χρειαστεί να δημιουργήσετε μια εφαρμογή δωμάτιο συνομιλίας . Visual Basic Express είναι διαθέσιμο δωρεάν σε όποιον ενδιαφέρεται για τη δημιουργία εφαρμογών που χρησιμοποιούν VB.NET . Ένα δωμάτιο συνομιλίας περιλαμβάνει δύο εφαρμογές , το διακομιστή και τον πελάτη . Ο διακομιστής χειρίζεται όλες τις συνδέσεις των πελατών , καθώς και η εφαρμογή-πελάτης συνδέει τους χρήστες με το δωμάτιο διακομιστή για την αποστολή μηνυμάτων . Οδηγίες
Η 1

Ξεκινήστε το Microsoft Visual Basic Express , και στη συνέχεια κάντε κλικ στο κουμπί "New Project ". Στο αριστερό τμήμα του παραθύρου της οθόνης σας , επιλέξτε " Εφαρμογή κονσόλας . " Κάντε κλικ στο " OK". 2

Πατήστε το " Ctrl " + " A " και στη συνέχεια πατήστε το κουμπί " Διαγραφή ". Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο " Module1.vb " σας για να δημιουργήσετε το πρόγραμμα διακομιστή :

Εισαγωγές System.Net.Sockets

Εισαγωγές System.Text

Module Module1

Dim clientsList Όπως New Hashtable

Sub Main ( )

Dim ServerSocket Όπως New TcpListener ( 8888 )

Dim clientSocket Όπως TcpClient

dim infiniteCounter As Integer

dim μετρητή As Integer

serverSocket.Start ( )

msg ( " διακομιστή συνομιλίας Ξεκίνησε ...." )

μετρητή = 0

infiniteCounter = 0

Για infiniteCounter = 1 να 2

infiniteCounter = 1

μετρητής + = 1

clientSocket = serverSocket.AcceptTcpClient ( )

Δημ. bytesFrom ( 10024 ) Όπως Byte

Dim dataFromClient Όπως String Dim

networkStream Όπως 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

εκπομπή ( dataFromClient + " Εγγραφή " , dataFromClient , False )

msg ( dataFromClient + " Εγγραφή δωμάτιο συνομιλίας " )

Dim πελάτη As New handleClinet

client.startClient ( clientSocket , dataFromClient , Υπο

Sub msg ( ByVal mesg Όπως String )

mesg.Trim ( )

Console.WriteLine ( " >> " + mesg )

End Sub

Private Sub εκπομπή ( ByVal msg Όπως String , _

ByVal uname Όπως String , σημαία ByVal Όπως Boolean )

Dim στοιχείου ως DictionaryEntry

για κάθε είδος clientsList

Dim broadcastSocket Όπως TcpClient

broadcastSocket = ctype ( Item.Value , TcpClient )

Dim broadcastStream Όπως NetworkStream = _

broadcastSocket.GetStream ( )

Dim broadcastBytes Όπως [ Byte ] ( )

Εάν σημαία = True τότε

broadcastBytes = Encoding.ASCII.GetBytes ( uname + " λέει : " + msg )

υπόλοιπα

broadcastBytes = Encoding.ASCII.GetBytes ( msg )

End If

broadcastStream.Write ( broadcastBytes , 0 , broadcastBytes . μήκος)

broadcastStream.Flush ( )

Επόμενο

End Sub

Δημόσιας Τάξης handleClinet

Dim clientSocket Όπως TcpClient

Dim νόνη Όπως String Dim

clientsList Όπως Hashtable

Public Sub startClient ( ByVal inClientSocket Όπως TcpClient , _

ByVal clineNo As String , ByVal clist Όπως Hashtable )

Me.clientSocket = inClientSocket

Me.clNo = clineNo

Me.clientsList = clist

Dim ctThread Όπως Threading.Thread = Νέα Threading.Thread ( AddressOf doChat )

ctThread.Start ( )

End Sub

Private Sub doChat ( )

Dim infiniteCounter As Integer

Dim requestCount As Integer

Δημ. bytesFrom ( 10024 ) Όπως Byte

Dim dataFromClient Όπως String Dim

sendBytes Όπως [ Byte ] ( )

Dim serverResponse As String

Dim rCount Όπως String

requestCount = 0

Για infiniteCounter = 1 να 2

infiniteCounter = 1

Δοκιμάστε

requestCount = requestCount + 1

Dim networkStream Όπως networkStream = _

clientSocket.GetStream ( )

networkStream.Read ( bytesFrom , 0 , CInt ( clientSocket.ReceiveBufferSize ) )

dataFromClient = System.Text.Encoding.ASCII.GetString ( bytesFrom )

dataFromClient = _

dataFromClient.Substring ( 0 , dataFromClient.IndexOf ( " $ " ) )

msg ( «Από τον πελάτη - " + νόνη + " : " + dataFromClient )

rCount = Convert.ToString ( requestCount )

εκπομπή ( dataFromClient , νόνη , Αληθές)

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 " + " Α. " Πατήστε "Διαγραφή ". Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο σας " Form1.vb " ενότητα για να δημιουργήσετε το πρόγραμμα-πελάτη :

Εισαγωγές System.Net.Sockets

Εισαγωγές System.Text

Δημόσιας Τάξης Φόρμα1

Dim clientSocket Όπως New System.Net.Sockets.TcpClient ( )

Dim serverStream Όπως NetworkStream

Dim υπηρεσιών ReadDataByIdentifier Όπως String Dim

infiniteCounter As Integer

Private Sub Button1_Click ( ByVal αποστολέα Όπως System.Object , _

ByVal e Όπως System.EventArgs ) Λαβές Button1.Click

Dim outStream Όπως Byte ( ) = _

System.Text.Encoding.ASCII.GetBytes ( TextBox2.Text + " $ " )

serverStream.Write ( outStream , 0 , outStream.Length )

serverStream.Flush ( )

End Sub

Private Sub msg ( )

Αν Me.InvokeRequired τότε

Me.Invoke ( New MethodInvoker ( AddressOf msg ) )

υπόλοιπα

TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + υπηρεσιών ReadDataByIdentifier

End If

End Sub

Private Sub Button2_Click ( ByVal αποστολέα Όπως System.Object , _

ByVal e Όπως System.EventArgs ) Λαβές Button2.Click

υπηρεσιών ReadDataByIdentifier = " είναι συνδεμένο στο Chat διακομιστή ... "

msg ( )

clientSocket.Connect ( " 127.0.0.1 " , 8888 )

' Label1.Text = " Πελάτης Socket Πρόγραμμα - διακομιστή Connected ... "

serverStream = clientSocket.GetStream ( )

Dim outStream Όπως Byte ( ) = _

System.Text.Encoding.ASCII.GetBytes ( TextBox3.Text + " $ " )

serverStream.Write ( outStream , 0 , outStream.Length )

serverStream.Flush ( )

Dim ctThread Όπως Threading.Thread = Νέα Threading.Thread ( AddressOf GetMessage )

ctThread.Start ( )

End Sub

Private Sub GetMessage ( )

Για infiniteCounter = 1 να 2

infiniteCounter = 1

serverStream = clientSocket.GetStream ( )

Dim buffSize As Integer

Dim instream ( 10024 ) Όπως Byte

buffSize = clientSocket.ReceiveBufferSize

serverStream.Read ( instream , 0 , buffSize )

dim returndata As String = _

System.Text.Encoding.ASCII.GetString ( instream )

υπηρεσιών ReadDataByIdentifier = " " + returndata

msg ( )

Επόμενη

End Sub

End Class
5

εκτελέστε το πρόγραμμα διακομιστή πρώτο πατώντας το πλήκτρο " F5 " , και στη συνέχεια, εκτελέστε το πρόγραμμα-πελάτη . Πληκτρολογήστε το όνομά σας " TextBox3 " και κάντε κλικ στο " Button2 " για να συνδεθείτε με το διακομιστή . Πληκτρολογήστε ένα μήνυμα στο " TextBox2 , " και στη συνέχεια κάντε κλικ στο κουμπί " Button1 " για να στείλετε ένα μήνυμα .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα