Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
bom... criei toda a conexao e tals... ele aceita! e tudo!! mas tipo.. se eu fexa a aplicação do cliente e a app do servidor fica rodando se eu abrir novamente o cliente quando eu vou manda o login e a senha ele da o erro
"Run-time error '40006'
Wrong protocol or connection state for the requested transaction or request
isso eu to vendo q eh toda vez q mandar algo com o SendData... pq isso ocorre!! pq tipo... quando da o erro ele sublinha o segundo SendData...
pq se eu clicar em entra asbre a tela login e posso loga q ele envia e recebe se deu certo!! mas se dai eu fexo o aviso q deu certo e clico no sair q dai ele iria enviar pro servidor uma mensagem informando que esta saindo.... ele da o erro... ou se eu usa qualquer SendData se n for a primeira vez ele da o erro! sem falar q se eu entra e dai sair ele n envia o texto!!
se alguem entendeu me explique!! vlwww
o código pra aceita a conexao do servidor e pra recebe os dados dai o enviar dos dados do cliente respectivamente
ACEITAR CONEXAO NO SERVIDOR
Private Sub Servidor_ConnectionRequest(ByVal requestID As Long)
If Servidor.State <> sckClosed Then Servidor.Close
Servidor.Accept requestID
status.AddItem "SERVIDOR ::> " & Servidor.RemoteHostIP & " conectou-se"
End Sub
RECEBER DADOS E ENVIA-LOS - SERVIDOR
Private Sub Servidor_DataArrival(ByVal bytesTotal As Long)
Dim dados As String
Dim User As String
Dim Senha As String
Dim Sql As String
Servidor.GetData dados
Recebi() = Split(dados, "%")
Select Case Recebi(0)
Case "LOGIN"
User = Recebi(1)
Senha = Recebi(2)
Sql = "SELECT * FROM usuarios where usuario = '" & User & "' and senha = '" & Senha & "'"
Conexao.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=prop;USER=root;PASSWORD=123;OPTION=3;"
Registros.Open Sql, Conexao
If Registros.EOF Then
Servidor.SendData "Login%Erro"
Else
Servidor.SendData "Login%sucesso%" & User & ""
status.AddItem "CLIENTE ::> " & User & " conectou-se"
End If
Case "Chat"
End Select
End Sub
CONEXAO DO CLIENTE COM O SERVER
If Cliente.State = sckConnected Then Cliente.Close
Cliente.RemoteHost = "127.0.0.1"
Cliente.RemotePort = 222
Cliente.Connect
ENVIO DO SEGUNDO SendData
Private Sub BtnSair_Click()
If Cliente.State = sckConnected Then
Cliente.Close
Cliente.SendData "Sair%Logout"
End If
End
End Sub
obrigado desde ja!!
Carregando comentários...