Ir para conteúdo
Fórum Script Brasil
  • 0

winsock envio automático


rafaelcpcunha

Pergunta

Olá

quero fazer um cliente que envia de tempo em tempo algumas informações.

como:

Dim usern As String
Dim npc As String
Dim userw As String
Dim dado As String

Private Sub Form_Load()
frmCliente.Visible = False
End Sub

Private Sub Timer1_Timer()
Winsock1.Close
Winsock1.Connect "10.22.214.236", 3535
npc = Environ$("computername")
userw = Environ$("username")
If userw = "" Then
dado = "Não tem ninguém na máquina"
Else
usern = Environ$("nwusername")
dado = "Usuário logado: " & usern & vbCrLf & "Máquina: " & npc
End If
End Sub

Private Sub Winsock1_Connect()
Winsock1.SendData dado
End Sub

Recebo apenas um vez as informações. Será que no Servidor tenho que ter um timer tb?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
não, acontece q o connect acontece so uma vez.

chame o connect na hora q o programa abrir e ponha o SendData dentro do timer.

Na verdade na primeira vez que tentei coloquei o senddata no timer, mas não enviava nada, porém coloque-o no connect daí deu certo. algo assim, mas vou experimentar tua sugestão.

porque acontecia isso

%5burl=http://support.microsoft.com/kb/183987/pt-br%5dhttp://support.microsoft.com/kb/183987/pt-br" target="_blank">

http://support.microsoft.com/kb/183987/pt-br

qd tiver bom o código vou criar o executável um serviço do windows, para poder receber status até qd não há user logado.

Editado por rafaelcpcunha
Link para o comentário
Compartilhar em outros sites

  • 0

é q antes de chamar o connect, o winscok ta desconectado ne. ai não tem como mandar nenhum dado.

o evento connect (onde você pos o senddata() no codigo q postou) acontece assim q a conexao é feita (q é quando você chama o metodo connect()). então la dentro você vai colocar só codigos q você queira q acontecam no exato momento da conexao.

agora vi q você pos o close antes do connect... então a principio imagino q esse codigo devesse funcionar.

mas fazer assim fica muito estranho e ele executa mtas coisas desnecessarias. o melhor é fazer o connect uma unica vez e o close uma unica vez.

ai você envia os dados dentro do timer.

mas, mais por curiosidade... quanto tempo você pos nesse timer??

caso não consiga fazer funcionar, da proxima vez, poste tb o codigo do servidor, certo??

Link para o comentário
Compartilhar em outros sites

  • 0

Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Winsock1.Close
Winsock1.LocalPort = 3535
Winsock1.Listen
If Winsock1.State <> sckClosed Then Label1.Caption = "Escutando . . ."
End Sub

Private Sub Winsock1_Close()
Winsock1.Close
Winsock1.Listen
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim dados As String
Winsock1.GetData dados
Text1.Text = dados & vbCrLf & "Cliente conectado com o IP: " & Winsock1.RemoteHostIP
End Sub

O interval esta em 5000

Na realidade agora esta funcionando, quase 100%.

Coloco o executável(por enquanto) no inicializar do windows, daí quando alguém se loga o servidor recebe as informações, só para você saber, a variável de ambiente nwusername é criada pelo cliente novell com o usuário logado, pois a username(criado pelo windows) é fixo aqui, então é o jeito que tenho como testar se há alguém logado.

Digo q não esta 100% pois ele apenas funciona algumas vezes, digo, o tempo de vida é 2 usuários, no terceiro da erro 40006, q é o que falei.

fiz um novo cliente, com o evento form_unload e nele coloquei o winsock.close, quero ver se com isso ele fecha a conexão qd o windows forçar o fechamento do cliente,....não testei ainda.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...