Βοηθεια σε Chat!

Συζητήσεις για τις γλώσσες του dot Net και για του Visual Studio της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
geotheod
Δημοσιεύσεις: 54
Εγγραφή: 19 Απρ 2005 13:12
Τοποθεσία: Αθήνα
Επικοινωνία:

Βοηθεια σε Chat!

Δημοσίευση από geotheod » 08 Ιούλ 2005 15:34

Παιδια εχω μια εφαρμογή CHAT(μεταξυ ενος server και ενος client) η οποία, πέρα από τη δυνατότητα αποστολής κειμένου, θελω να δίνει τη δυνατότητα στους χρήστες να αποστέλλουν ο ένας στον άλλον δέκα (10) προκατασκευασμένα μηνύματα.
1. Γεια χαρά
2. Φεύγω
3. Πως είσαι
4. Είμαι καλά
5. Είμαι απασχολημένος αυτή τη στιγμή
6. Ευχαριστώ
7. Λυπάμαι
8. Χαίρομαι
9. Μπράβο
10. Περίμενε μισό λεπτό

Τα μηνύματα αυτά θελω ο χρήστης να μπορεί να τα στείλει επιλέγοντάς τα είτε από ένα drop-down menu είτε πατώντας κάποιο από 10 αντίστοιχα κουμπιά που θα βρισκονται στις φόρμες των χρηστών.

Εχω τον κωδικα για το CHAT και πιστευω πως ειναι σωστος. Απλα θελω να κανω τις απαιτουμενες αλλαγες πανω σε αυτον ωστε να βαλω αυτα τα προκαθορισμενα μυνηματα που αναφερω παραπανω. Ο αρχικος κωδικας ειναι:

SERVER:

Κώδικας: Επιλογή όλων

Private intMax As Long
Private basePort As Long
Private sendIndex As Long

Private Sub close_Click()
On Error GoTo errorHandler
  tcpServer(0).close
End
Exit Sub
errorHandler:
MsgBox ("Error!")
End Sub



Private Sub Form_Load()

' Set the LocalPort property to an integer.
' Then invoke the Listen method.
On Error GoTo errorHandler
intMax = 0
basePort = 1001
tcpServer(0).LocalPort = basePort
tcpServer(0).Listen
Exit Sub
errorHandler:
MsgBox ("Error!")
End Sub


Private Sub List1_ItemCheck(Item As Integer)

On Error GoTo errorHandler
sendIndex = List1.ItemData(Item)

Exit Sub
errorHandler:
MsgBox ("Error!")
End Sub

Private Sub submit_Click()

On Error GoTo errorHandler
tcpServer(sendIndex).SendData "CHAT*" & "SERVER" & ":  " & Text2.Text
Text2.Text = ""

Exit Sub
errorHandler:
MsgBox ("Error!")
End Sub

Private Sub tcpServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
   
  ' i can use the remotehostip for security
 On Error GoTo errorHandler
   If Index = 0 Then
      intMax = intMax + 1
      Load tcpServer(intMax)
      tcpServer(intMax).LocalPort = 0
      tcpServer(intMax).Accept requestID
      List1.AddItem "IP= " & tcpServer(intMax).RemoteHostIP & " PORT= " & tcpServer(intMax).RemotePort
      List1.ItemData(List1.NewIndex) = intMax
   End If


Exit Sub
errorHandler:
MsgBox ("Error!")
End Sub


'(ByVal requestID As Long)
' Check if the control's State is closed. If not,
' close the connection before accepting the new
' connection.
'If tcpServer.State <> sckClosed Then _
'tcpServer.close
' Accept the request with the requestID
' parameter.
'Text2.Text = tcpServer.State
'tcpServer.Accept requestID
'End Sub

Private Sub tcpServer_DataArrival&#40;Index As Integer, ByVal bytesTotal As Long&#41;
Dim strData As String
Dim array_data&#40;&#41; As String
  
On Error GoTo errorHandler
  tcpServer&#40;Index&#41;.GetData strData, vbString
  array_data = Split&#40;strData, "*"&#41;
  If array_data&#40;0&#41; = "CHAT" Then
     Text3.Text = Text3.Text & tcpServer&#40;Index&#41;.RemoteHostIP & "&#58;  " & array_data&#40;1&#41; & vbNewLine
  End If

Exit Sub
errorHandler&#58;
MsgBox &#40;"Error!"&#41;
End Sub

CLIENT:

Κώδικας: Επιλογή όλων

Private Sub closecon_Click&#40;&#41;
On Error GoTo errorHandler
tcpClient.close
End
Exit Sub
errorHandler&#58;
MsgBox &#40;"Error!"&#41;
End Sub

Private Sub setIP_Click&#40;&#41;
 Dim Msg As String
On Error GoTo errorHandler
 If tcpClient.State = sckConnected Then
   Msg = "THE COMPUTER IS ALREADY CONNECTED TO SERVER&#58; " & tcpClient.RemoteHostIP
   MsgBox Msg
 Else
   tcpClient.close
   tcpClient.RemoteHost = ipaddress.Text
   tcpClient.RemotePort = 1001
   tcpClient.Connect
  End If
Exit Sub
errorHandler&#58;
MsgBox &#40;"Error!"&#41;
End Sub

Private Sub submit_Click&#40;&#41;
On Error GoTo errorHandler

tcpClient.SendData "CHAT*" & Text2.Text
Text2.Text = ""

Exit Sub
errorHandler&#58;
MsgBox &#40;"Error!"&#41;
End Sub

Private Sub tcpClient_DataArrival _
&#40;ByVal bytesTotal As Long&#41;
Dim strData As String
Dim array_data&#40;&#41; As String
On Error GoTo errorHandler

  tcpClient.GetData strData, vbString
  array_data = Split&#40;strData, "*"&#41;
  If array_data&#40;0&#41; = "CHAT" Then
  Text4.Text = Text4.Text & array_data&#40;1&#41; & vbNewLine
  End If

Exit Sub
errorHandler&#58;
MsgBox &#40;"Error!"&#41;
End Sub

MAIN:

Κώδικας: Επιλογή όλων

Private Sub Command1_Click&#40;&#41;
frmClient.Visible = True
frmServer.Visible = True
frmMAIN.Visible = False
End Sub

Private Sub Command2_Click&#40;&#41;
frmClient.Visible = True
frmServer.Visible = False
frmMAIN.Visible = False
End Sub
Eλπιζω να καταλαβατε τι θελω να κανω. Μια επικοινωνια μεταξυ Server και Client οπου θα υπαρχουν τα προκατασκευασθεντα μυνηματα. Το προβλημα μου ειναι οτι δεν ξερω πως να τα ενσωματωσω στη φορμα... Οποιος μπορει να με βοηθησει θα του ειμαι ευγνομων.

androu
Δημοσιεύσεις: 5
Εγγραφή: 14 Μάιος 2005 15:38

Βοηθεια σε Chat!

Δημοσίευση από androu » 20 Οκτ 2005 01:11

Λοιπόν έχω και εγώ μια παρόμοια εργασία σε ποιό απλή μορφή

client-server σε απλή επικοινωνία.
Εχω κανει και δουλεύει ο client---> server
αλλά δεν μου δουλεύει να στέλνει μηνύματα αναποδα
client




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
errorHandler:
MsgBox ("Error!")
End Sub



Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long)
tcpclient(Index).GetData strdata, vbString
Text2.Text = strdata
End Sub
server


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
forma arxiki
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

εαν μπορεί κάποιος να με βοηθήσει.. plzz!!

Απάντηση

Επιστροφή στο “dot Net και Visual Studio”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες