androu Δημοσ. 20 Οκτωβρίου 2005 Δημοσ. 20 Οκτωβρίου 2005 Λοιπόν έχω μια εργασία να φτιάξω σε vb ενα chat client-server σε απλή επικοινωνία. Εχω κανει και δουλεύει ο client---> server στελνει μηνύματα αλλά δεν μου δουλεύει να στέλνει μηνύματα αναποδα (ο server -> client) αν κάποιος μπορεί να με βοηθήσει.. :neutral: > client _ kodikas Private Sub Command1_Click() tcpclient.SendData Text3.Text End Sub Private Sub setip_Click() Dim Msg As String On Error GoTo errorHandler If tcpclient.State = sckConnected Then Msg = "THE COMPUTER IS ALREADY CONNECTED TO SERVER: " & tcpclient.RemoteHostIP MsgBox Msg Else tcpclient.Close tcpclient.RemoteHost = ipaddress.Text tcpclient.RemotePort = 1001 tcpclient.Connect End If Exit Sub End Sub Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long) tcpclient(Index).GetData strdata, vbString Text2.Text = strdata End Sub > server kodikas Private Sub Command1_Click() tcpServer.SendData Text2.Text End Sub Private Sub Form_Load() tcpServer(0).LocalPort = 1001 tcpServer(0).Listen End Sub Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long) Load tcpServer(1) tcpServer(1).LocalPort = 0 tcpServer(1).Accept requestID End Sub Private Sub tcpServer_DataArrival(Index As Integer, ByVal bytesTotal As Long) tcpServer(Index).GetData strdata, vbString Text1.Text = strdata End Sub > arxiki forma pou epilegw ti tha anoixei (client server i kai ta 2) Private Sub Command1_Click() Server.Visible = True Selection.Visible = False End Sub Private Sub Command2_Click() Client.Visible = True Selection.Visible = False End Sub Private Sub Command3_Click() Server.Visible = True Client.Visible = True Selection.Visible = False End Sub
firewalker Δημοσ. 20 Οκτωβρίου 2005 Δημοσ. 20 Οκτωβρίου 2005 Μπορώ να σου στείλω ένα άλλο κώδικα. Δεν έχω χρόνο να κοιτάξω τον δικό σου τώρα. Θα τον δω αργότερα. Ελπίζω με τον παρακάτω κώδικα να βρεις το λάθος σου. Αφού φτιάχνεις δύο exe αρχεία με τον παρακάτω κώδικα στο ένα πατάς Listen και στο άλλο Connect. Chat Vb.zip
androu Δημοσ. 20 Οκτωβρίου 2005 Μέλος Δημοσ. 20 Οκτωβρίου 2005 Αυτό που υποψιάζομαι ότι δεν μου δουλεύει είναι το κουμπί "send" για να στείλει το κείμενο στον client ή δεν υπάρχει κάποια διεργασία μέσα στο server ή στον client για να το στείλει ή να το δεχτεί. Αν και υπάρχει dataarrival στο client. δεν μπορώ να καταλάβω τι παίζει. Ευχαριστώ για το προγραμμματάκι αλλά εχω κάνει 2 exe διαφορετικά... σε ένα project .. όταν πατήσω send απο το server -> cliend κιτρινίζει αυτο-> Private Sub Command1_Click() :-? το Project είναι παρακάτω.. αν μπορείς κοίταξε το.. test.zip
firewalker Δημοσ. 20 Οκτωβρίου 2005 Δημοσ. 20 Οκτωβρίου 2005 Δεν ξέρω που έχεις κάνει λάθος, δεν το βρήκα. Υποθέτω όμως κάπου με τα index. Όπως και να έχει σου έγραψα τον παρακάτω κώδικα που είναι ίδιος με τον δικό σου μόνο που δεν κάνω χρήση του index πουθενά. Μήπως έκανες Copy Paste τα controls? Τέλος πάντον, ο παρακάτω κώδικας τρέχει κια χαρά. Αν έχεις προβλήματα πόσταρε πάλι. Chat in Vb.zip
silverthan Δημοσ. 20 Οκτωβρίου 2005 Δημοσ. 20 Οκτωβρίου 2005 > ***Client*** Private Sub setIP_Click() Dim Msg As String On Error GoTo errorHandler If tcpClient.State = sckConnected Then Msg = "THE COMPUTER IS ALREADY CONNECTED TO SERVER: " & tcpClient.RemoteHostIP MsgBox Msg Else tcpClient.Close tcpClient.RemoteHost = ipaddress.Text tcpClient.RemotePort = 1001 tcpClient.Connect End If Exit Sub errorHandler: MsgBox ("Error!") End Sub Private Sub submit_Click() On Error GoTo errorHandler tcpClient.SendData Text2.Text Text1.Text = Text1.Text & Text2.Text & vbNewLine Text2.Text = "" Exit Sub errorHandler: MsgBox ("Error!") End Sub Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long) Dim strData As String On Error GoTo errorHandler tcpClient.GetData strData, vbString Text1.Text = Text1.Text & strData & vbNewLine Exit Sub errorHandler: MsgBox ("dfdf!") End Sub > ***Server*** Private intMax As Long Private basePort As Long Private sendIndex As Long Private Sub Form_Load() On Error GoTo errorHandler Client.Show basePort = 1001 tcpServer(0).LocalPort = basePort tcpServer(0).Listen Exit Sub errorHandler: MsgBox ("Error!") End Sub Private Sub submit_Click() On Error GoTo errorHandler tcpServer(1).SendData Text2.Text Text1.Text = Text1.Text & Text2.Text & vbNewLine Text2.Text = "" Exit Sub errorHandler: MsgBox ("Error!") End Sub Private Sub tcpServer_ConnectionRequest _ (Index As Integer, ByVal requestID As Long) On Error GoTo errorHandler If Index = 0 Then Load tcpServer(1) tcpServer(1).LocalPort = 0 tcpServer(1).Accept requestID End If Exit Sub errorHandler: MsgBox ("Error!") End Sub Private Sub tcpServer_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim strData As String On Error GoTo errorHandler tcpServer(Index).GetData strData, vbString Text1.Text = Text1.Text & strData & vbNewLine Exit Sub errorHandler: MsgBox ("Error!") End Sub
androu Δημοσ. 20 Οκτωβρίου 2005 Μέλος Δημοσ. 20 Οκτωβρίου 2005 ευχαριστώ δυστηχώς άργησα λίγο να το δώ... λοιπόν κατάφερα να το κάνω να επικοινωνήσει + προς τις 2 μεριές.. αλλά έχω πρόβλημα οτι το ένα μήνυμα το βάζει κολητά απο το άλλο δίπλα δίπλα με το vbnewline εμφανίζει κάτι || μετά απο κάθε μήνυμα... τι πρέπει να κάνω σε αυτό το σημείο? εγώ θελω να το βγάζει απο κάτω.. >Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long) tcpclient.GetData strData, vbString Text2.Text = Text2.Text + strData + " " Text3.Text = "" End Sub
firewalker Δημοσ. 21 Οκτωβρίου 2005 Δημοσ. 21 Οκτωβρίου 2005 Στο textbox που θέλεις βάλε multiline=true.
firewalker Δημοσ. 23 Οκτωβρίου 2005 Δημοσ. 23 Οκτωβρίου 2005 Κάνε αυτό: Text2.Text = Text2.Text & vbCrLf & strData Mε το multiline=true.
androu Δημοσ. 22 Νοεμβρίου 2005 Μέλος Δημοσ. 22 Νοεμβρίου 2005 τώρα έχω μια εφαρμογή βίντεο η οποία στέλνει παρα πολυ γρήγορα απο τον server ->client εικόνες jpeg και φαίνεται σαν βίντο. Πρέπει να βαλω στον client 4 κουμπιά (pause, play, fw, bw) για το control του "βίντεο" .. -> Bασικά χρειάζεται να δημιουργησω καινούριο socket. (αλλά με τι εντολές ) θα επικοινωνούν τα controls του client με τον server για να σταματά ή να προχωρά το βίντεο??
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.