Jump to content

Recommended Posts

Posted

boas, to a querer fazer um programa para comunicar em tcp, mas to a ter alguns problemas, pois as ligações nao correm muito bem como eu queria..

tenho um tcplistner que ao receber ligações, abre um tcpcliente, como posso-o fazer abrir mais que um tcpclient?

cmps

Luis Lourenço

Posted

pois, é assim, quero ter uma ligação sql no pda, mas para isso a vodafone corta-me a ligação nas portas do sql, então quero "comprimi-lo":

1 um programa host que recebe na porta 80 e ta instalado ao pe do sql, esse programa recebe do pda e faz querys ao sql e depois envia a resposta pela mesma porta 80, como é http, esta sempre aberta..

2 tambem o programa recebe os dados encriptados e transmite-os encritpados para evitar sniffers..

3 mas só conseigo receber o primeiro pacote, os outros nao recebo, quer dizer, recebo mas anda nao descobri como os ler..

eis o codigo de recebr os dados no programa host

  Try

            If tcpL.Pending Then

                LI_Server.BackColor = Color.GreenYellow

                Receber(tcpL.AcceptTcpClient)

            Else

                LI_Server.Text = "Server" & vbNewLine & "RUN"

                LI_Server.BackColor = Color.Green

            End If

        Catch ex As Exception

            MsgBox(ex.Message)

        End Try

        Label8.Text = tcpL.Pending

depois para receber to a exprimentar assim:

primeiro isto

  tcpC = tcp

        Dim ip As String = tcpC.Client.RemoteEndPoint.ToString

        Fx_LVReg("Ligação com " & ip)

        Timer2.Enabled = True

        th = New Thread(AddressOf Th_RcbTcp)

        th.Start()

e na sub do thread tem isto

  While tcpC.Connected

            If tcpC.Available > 0 Then

                Dim dt As Integer = tcpC.Available

                Dim nr = tcpC.GetStream : Dim bt(tcpC.Available) As Byte

                Dim bty(dt) As Byte : Dim s, ss As String

                nr.Read(bty, 0, bty.Length)

                s = Encoding.ASCII.GetString(bty, 0, dt)

                ss = Crypto.Decrypt(s)

                Fx_LVReg("Rec: " & ss)

            End If

            Thread.Sleep(100)

        End While

        Fx_LVReg("Desligago...")

espero que percebam..

cmps

(´so uma pergunta, como posso fazer um copy past e ficar igual ao VS2008, é que ja vi fazer e não sei como...)

Luis Lourenço

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.