PROBLEMA COM PACOTE DE WINSOCK
Olá a todos..
Eu estava aqui expandindo meus conhecimentos de VB, com a finalidade de criar um "joguinho" online. Na verdade nem é um jogo, é somente uma picturebox com um shape , sendo que cada pessoa que loga podera ter o seu shape para mover =D.
Estou com um problema, que ja tive uma vez, só que nunk consegui arruma-lo.
Esse é o código que eu uso para o Servidor:
O Problema é que, ao enviar o pacote "Socket" & vbTab & Index
e o pacote "Logar" & vbTab & Index
não sei por que eles "grudam" e formam um pacote só =(
ex:
"Socket<TAB>0Logar<TAB>0"
O que pode ser?
Eu estava aqui expandindo meus conhecimentos de VB, com a finalidade de criar um "joguinho" online. Na verdade nem é um jogo, é somente uma picturebox com um shape , sendo que cada pessoa que loga podera ter o seu shape para mover =D.
Estou com um problema, que ja tive uma vez, só que nunk consegui arruma-lo.
Esse é o código que eu uso para o Servidor:
Citação:Private Sub Command2_Click()
Label1.Caption = "Modo Servidor"
Command3.Enabled = False
For x = 1 To 50
Load Socket(x)
Next x
Socket(0).Listen
End SubPrivate Sub Socket_Close(Index As Integer)
Deslogar (Index)
End SubPrivate Sub Socket_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Socket(Index).Close
Socket(Index).Accept requestID
DarSocket (Index)
Logar (Index)
End SubPrivate Sub Socket_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim Data As String
Dim Socket1 As Integer
Dim String1 As String
Socket(Index).GetData Data
Comands = Split(Data, vbTab)
Select Case Comands(0)
Case "Mover"
Socket1 = Val(Comands(1))
String1 = Comands(2)
Mover Socket1, String1
End Select
End SubPrivate Sub Socket_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox "Erro na conexão"
End SubPrivate Sub Deslogar(Index As Integer)
For x = 0 To 50
If Socket(Index).State = 7 Then
Socket(Index).SendData "Deslogar" & vbTab & Index
End If
Next x
End SubPrivate Sub Logar(Index As Integer)
For x = 0 To 50
If Socket(x).State = 7 Then
Socket(x).SendData "Logar" & vbTab & Index
End If
Next x
End SubPrivate Sub Mover(Index As Integer, Coordenadas As String)
For x = 0 To 50
If Socket(x).State = 7 Then
Socket(x).SendData "Mover" & vbTab & Index & vbTab & Coordenadas
End If
Next x
End SubPrivate Sub DarSocket(Index As Integer)
Socket(Index).SendData "Socket" & vbTab & Index
End Sub
O Problema é que, ao enviar o pacote "Socket" & vbTab & Index
e o pacote "Logar" & vbTab & Index
não sei por que eles "grudam" e formam um pacote só =(
ex:
"Socket<TAB>0Logar<TAB>0"
O que pode ser?
Tentou colocar um DoEvents depois de enviar cada pacote ????
Talvez resolva...
Se não resolver, tente enviar um pacote, e ficar em Loop esperando uma resposta do servidor que ele recebeu...
Quando servidor responder vc sai do Loop e envia o outro pacote...
Talvez resolva...
Se não resolver, tente enviar um pacote, e ficar em Loop esperando uma resposta do servidor que ele recebeu...
Quando servidor responder vc sai do Loop e envia o outro pacote...
Coloquei um DoEvents e funcionou mesmo.
Eu não sabia nem pra que servia o DoEvents
E ainda não sei
Duvida respondida
Obrigado
Mais só para não criar outro tópico
Para que serve DoEvents?
Eu não sabia nem pra que servia o DoEvents
E ainda não sei
Duvida respondida
Obrigado
Mais só para não criar outro tópico
Para que serve DoEvents?
Só para explicar...
o DoEvents faz com que sejam executados e finalizados todos os processamentos acima, antes de continuar...
desta forma ele envia e finaliza o envio antes de enviar o outro. fazendo com que eles não "encavalem"...
o DoEvents faz com que sejam executados e finalizados todos os processamentos acima, antes de continuar...
desta forma ele envia e finaliza o envio antes de enviar o outro. fazendo com que eles não "encavalem"...
Obrigado Novamente =D
Tópico encerrado , respostas não são mais permitidas