Προς το περιεχόμενο

help gia vb


androu

Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν έχω μια εργασία να φτιάξω σε 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 


Δημοσ.

Μπορώ να σου στείλω ένα άλλο κώδικα. Δεν έχω χρόνο να κοιτάξω τον δικό σου τώρα. Θα τον δω αργότερα. Ελπίζω με τον παρακάτω κώδικα να βρεις το λάθος σου.

 

Αφού φτιάχνεις δύο exe αρχεία με τον παρακάτω κώδικα στο ένα πατάς Listen και στο άλλο Connect.

Chat Vb.zip

Δημοσ.

Αυτό που υποψιάζομαι ότι δεν μου δουλεύει είναι το κουμπί "send" για να στείλει το κείμενο στον client ή δεν υπάρχει κάποια διεργασία μέσα στο server ή στον client για να το στείλει ή να το δεχτεί.

 

Αν και υπάρχει dataarrival στο client. δεν μπορώ να καταλάβω τι παίζει.

 

Ευχαριστώ για το προγραμμματάκι αλλά εχω κάνει 2 exe διαφορετικά... σε ένα project ..

 

όταν πατήσω send απο το server -> cliend

κιτρινίζει αυτο-> Private Sub Command1_Click() :-?

 

το Project είναι παρακάτω.. αν μπορείς κοίταξε το..

test.zip

Δημοσ.

Δεν ξέρω που έχεις κάνει λάθος, δεν το βρήκα. Υποθέτω όμως κάπου με τα index. Όπως και να έχει σου έγραψα τον παρακάτω κώδικα που είναι ίδιος με τον δικό σου μόνο που δεν κάνω χρήση του index πουθενά. Μήπως έκανες Copy Paste τα controls? Τέλος πάντον, ο παρακάτω κώδικας τρέχει κια χαρά. Αν έχεις προβλήματα πόσταρε πάλι.

Chat in Vb.zip

Δημοσ.

>
***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

Δημοσ.

ευχαριστώ δυστηχώς άργησα λίγο να το δώ...

 

λοιπόν κατάφερα να το κάνω να επικοινωνήσει + προς τις 2 μεριές..

αλλά έχω πρόβλημα οτι το ένα μήνυμα το βάζει κολητά απο το άλλο δίπλα δίπλα

 

με το vbnewline εμφανίζει κάτι || μετά απο κάθε μήνυμα...

τι πρέπει να κάνω σε αυτό το σημείο? εγώ θελω να το βγάζει απο κάτω..

 

>Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long)

tcpclient.GetData strData, vbString


   Text2.Text = Text2.Text + strData + " "

Text3.Text = ""
   
    
    
    End Sub

  • 5 εβδομάδες αργότερα...
Δημοσ.

τώρα έχω μια εφαρμογή βίντεο η οποία στέλνει παρα πολυ γρήγορα απο τον server ->client εικόνες jpeg και φαίνεται σαν βίντο. Πρέπει να βαλω στον client 4 κουμπιά (pause, play, fw, bw) για το control του "βίντεο" ..

 

-> Bασικά χρειάζεται να δημιουργησω καινούριο socket. (αλλά με τι εντολές ) θα επικοινωνούν τα controls του client με τον server για να σταματά ή να προχωρά το βίντεο??

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...