Hejsan, Det enda jag kan komma på i detta fallet är att du använder doevents på några ställen. Det ger operativet och kanske även kommunikationssträngen några extra millisekunder att hämta sig. Hej Pelle.Winsock problem
Jag har skrivigt ett litet chat system med client / server uppbyggnad. Jag har lite problem med server delen. Problemet är när ett meddelande skickas av en av clienterna så skall servern skicka ut det till alla andra på servern. Men den missar folk och hoppar över folk etc beroende på i vilken ordning folk har connectat.
Följande kod används för att connecta folken till servern.
Private Sub ServerSocket_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intSocket = intSocket + 1
Load ServerSocket(intSocket)
ServerSocket(intSocket).Accept requestID
End If
End Sub
Här är rutinen som tar emot ett meddelande från en person och skickar det vidare till de andra på servern. Om jag tar bort kommentaren på raden som det står
msgbox Index
så fungerar servern utmärkt och alla får meddelandet alltid. Så det verkar som om det behövs någon delay men det har jag provat med. Upp till 5 sekunder men det gav inte samma resultat ändå. Några idéer ???
Private Sub ServerSocket_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strMessage As String
Dim strUser As String
Dim intPos As Integer
Dim n As Integer
ServerSocket(Index).GetData strMessage
' MsgBox Index
intPos = InStr(strMessage, " ")
strUser = Left(strMessage, intPos - 1)
strMessage = Mid(strMessage, intPos + 1)
For n = 1 To intSocket
If n <> Index Then
ServerSocket(n).SendData strUser & " " & strMessage
End If
Next
End SubSv: Winsock problem
Sv: Winsock problem
Tack för hjälpen. Efter det att jag lagt till en DoEvents i For/Next statsen som skickar meddelandet till övriga klienter så fungerade det utmärkt.
For n = 1 To intSocket
If n <> Index Then
ServerSocket(n).SendData strUser & " " & strMessage
DoEvents
End If
Next
En liten fråga om forumet bara. Om man vill ta bort ett meddelande som man skrivigt så går detta inte, eller ? Skulle funnit under Admin knappen.. En delete message funktion.
// Bye