Jump to content
Fórum Script Brasil
  • 0

winsock envio automático


rafaelcpcunha

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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.

Edited by rafaelcpcunha
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...