where a message sent, gets displayed to each person currently
pls help to add list user and While press on user you see message
not a general chat room where a message sent, gets displayed to each person
server
VB.NET:
Private Server As socketServer
Private ServerOn As Boolean = False
Private InUse() As Boolean
Private Sub serverLogMessage(ByVal Message As String)
Delegates.RichTextBoxes.appendText(Me, rtbServer, vbCrLf & Message)
End Sub
Private Sub serverSendToAllConnected(ByVal User As String, ByVal Message As String, Optional ByVal ExceptSock As Integer = -1)
If isArraySafe(InUse) Then
For i As Integer = 0 To InUse.Length - 1
If Not (i = ExceptSock) Then
If InUse(i) Then
Server.Send(i, "Server: " & Message)
End If
End If
Next
End If
End Sub
Private Sub txtServeSend_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtServeSend.KeyPress
If e.KeyChar = Chr(Keys.Enter) Then
If Server IsNot Nothing Then
serverSendToAllConnected("Server", txtServeSend.Text)
serverLogMessage("Server: " & txtServeSend.Text)
txtServeSend.Text = ""
End If
End If
End Sub
Private Sub btnStopServe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStopServe.Click
If Server Is Nothing Then
Exit Sub
Else
If ServerOn = False Then
Exit Sub
Else
Server.stopListen(True)
serverLogMessage("No longer serving.")
ServerOn = False
End If
End If
End Sub
Private Sub btnServe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnServe.Click
If Server Is Nothing Then
Server = New socketServer()
Else
If ServerOn = False Then
Server = New socketServer()
Else
Exit Sub
End If
End If
ServerOn = True
AddHandler Server.IncomingData, AddressOf handleServerIncomingData
AddHandler Server.Connected, AddressOf handleServerConnected
AddHandler Server.ConnectionError, AddressOf handleServerConnectionError
AddHandler Server.ConnectionRefused, AddressOf handleServerConnectionRefused
AddHandler Server.Disconnected, AddressOf handleServerDisconnected
AddHandler Server.DisconnectError, AddressOf handleServerDisconnectError
AddHandler Server.IncomingDataError, AddressOf handleServerIncomingDataError
AddHandler Server.ListenError, AddressOf handleServerListenError
AddHandler Server.SendDataError, AddressOf handleServerSendDataError
ReDim InUse(63)
Server.Listen(64, txtServePort.Text)
serverLogMessage("Now serving.")
End Sub
'************************************************************
'Primary Socket Functionality
'************************************************************
Private Sub handleServerIncomingData(ByVal Sock As Integer, ByRef Data As String)
If Data.Length > 0 Then
serverLogMessage(Data)
End If
End Sub
Private Sub handleServerConnected(ByVal Sock As Integer, ByVal RemoteAddress As String)
serverLogMessage("Connection from " & RemoteAddress & " to socket space " & Sock & ".")
InUse(Sock) = True
End Sub
Private Sub handleServerConnectionRefused(ByVal Message As String)
serverLogMessage(Message)
End Sub
Private Sub handleServerDisconnected(ByVal Sock As Integer)
serverLogMessage("Socket " & Sock & ": Disconnected.")
InUse(Sock) = False
End Sub
'************************************************************
'Functional Error Reporting (Below)
'************************************************************
Private Sub handleServerConnectionError(ByVal Sock As Integer, ByVal Message As String)
serverLogMessage("Socket " & Sock & ": " & Message)
End Sub
Private Sub handleServerDisconnectError(ByVal Sock As Integer, ByVal Message As String)
serverLogMessage("Socket " & Sock & ": " & Message)
End Sub
Private Sub handleServerIncomingDataError(ByVal Sock As Integer, ByVal Message As String)
serverLogMessage("Socket " & Sock & ": " & Message)
End Sub
Private Sub handleServerListenError(ByVal Message As String)
serverLogMessage("Error: " & Message)
ServerOn = False
End Sub
Private Sub handleServerSendDataError(ByVal Sock As Integer, ByVal Message As String)
serverLogMessage("Socket " & Sock & ": " & Message)
End Sub
#End Region
client
VB.NET:
Private Sub clientLogMessage(ByVal Message As String)
Delegates.RichTextBoxes.appendText(Me, rtbClient, vbCrLf & Message)
End Sub
Private Sub btnClientConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClientConnect.Click
Client = New socketClient()
AddHandler Client.Connected, AddressOf handleClientConnected
AddHandler Client.ConnectionError, AddressOf handleClientConnectionError
AddHandler Client.Disconnected, AddressOf handleClientDisconnected
AddHandler Client.DisconnectError, AddressOf handleClientDisconnectError
AddHandler Client.IncomingData, AddressOf handleClientIncomingData
AddHandler Client.IncomingDataError, AddressOf handleClientIncomingDataError
AddHandler Client.SendDataError, AddressOf handleClientSendDataError
Client.Connect(txtClientIP.Text, txtClientPort.Text)
End Sub
Private Sub txtClientSend_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtClientSend.KeyPress
If e.KeyChar = Chr(Keys.Enter) Then
If Client IsNot Nothing Then
If Client.isConnected Then
Client.Send(txtClientName.Text & ": " & txtClientSend.Text)
clientLogMessage(txtClientName.Text & ": " & txtClientSend.Text)
txtClientSend.Text = ""
End If
End If
End If
End Sub
'************************************************************
'Primary Socket Functionality
'************************************************************
Private Sub handleClientConnected()
clientLogMessage("Connected!")
End Sub
Private Sub handleClientDisconnected()
clientLogMessage("Disconnected!")
End Sub
Private Sub handleClientIncomingData(ByRef Data As String)
If Data.Length > 0 Then
clientLogMessage(Data)
End If
End Sub
'************************************************************
'Functional Error Reporting (Below)
'************************************************************
Private Sub handleClientConnectionError(ByVal Message As String)
clientLogMessage(Message)
End Sub
Private Sub handleClientDisconnectError(ByVal Message As String)
clientLogMessage(Message)
End Sub
Private Sub handleClientIncomingDataError(ByVal Message As String)
clientLogMessage(Message)
End Sub
Private Sub handleClientSendDataError(ByVal Message As String)
clientLogMessage(Message)
End Sub
#End Region
Attachments
Last edited by a moderator: