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

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

Πώς να κώδικα λογισμικό συνομιλίας χωρίς τη χρήση βάσης δεδομένων

Γνωρίζοντας πώς να φτιάξετε ένα δωμάτιο συνομιλίας χωρίς τη χρήση μιας βάσης δεδομένων μπορεί να σας βοηθήσει να δημιουργήσετε μια εφαρμογή server /client χωρίς να χρειάζεται να περνούν το χρόνο για τη σχεδίαση μιας βάσης δεδομένων . Ένα πρόγραμμα συνομιλίας που έχει δημιουργηθεί με τη χρήση δύο αιτήσεις , τον πελάτη και το διακομιστή. Η εφαρμογή server θα χειριστεί όλες τις συνδέσεις των πελατών για να δημιουργήσουν δίαυλο επικοινωνίας . Το πρόγραμμα-πελάτης είναι εγκατεστημένο σε κάθε υπολογιστή που θέλει να συνδεθεί με το διακομιστή για να κάνει chat με άλλους πελάτες . Μπορείτε να δημιουργήσετε αυτήν την εφαρμογή χρησιμοποιώντας το Microsoft Visual Basic.NET , επίσης γνωστή ως VB.NET . Τα πράγματα που θα χρειαστείτε για Microsoft Visual Basic Express
Η Εμφάνιση Περισσότερες οδηγίες
Η

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 " για να στείλετε το μήνυμά σας . το μήνυμα θα εμφανιστεί στο παράθυρο εξόδου της διακομιστή.
Η
εικόνων

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

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