• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

blasted

vb2005 & winsock -> server

10 mensagens neste tópico

Boas, venho mais uma vez pedir auxílio para uma pequena experiência.

Estou ainda na fase de tentar criar o servidor com winsock. Problema que estou a ter um erro na seguinte linha:

Dim tcp_client As System.Net.Sockets.TcpClient = TcpListener.AcceptTcpClient()

"Reference to a non-shared member requires an object reference."

O resto do código está aqui:

       Try
            Dim port As Int32 = 35000
            Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
            Dim TcpListener As New TcpListener(localAddr, port)
            TcpListener.Start()
            lblstat.Text = "Waiting for connection..."
        Catch ex As Exception
            MsgBox("Ups:" & ex.Message)
        End Try
        Do
            Try
                Dim tcp_client As System.Net.Sockets.TcpClient = TcpListener.AcceptTcpClient()
                Dim networkStream As System.Net.Sockets.NetworkStream = tcp_client.GetStream()
                Dim bytes(tcp_client.ReceiveBufferSize) As Byte
                networkStream.Read(bytes, 0, CInt(tcp_client.ReceiveBufferSize))
                Dim clientdata As String = Encoding.ASCII.GetString(bytes)
                '^Recebe uma string (por exemplo um comando)
                'aqui faz-se o tratamento da string
            Catch ex As Exception
                MsgBox("Ups:" & ex.Message)
                Exit Do
            End Try
        Loop

Obtive parte deste código numa thread, http://www.portugal-a-programar.pt/index.php?showtopic=18999

Agradecia imenso ajuda, pois já estou a martelar nisto há alguns dias >_<

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta:

Dim tcp_client As New System.Net.Sockets.TcpClient = TcpListener.AcceptTcpClient()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ao fazer isso o erro que me indica é "End of statement expected", e daí para a frente tudo referente à variável TcpClient ficam a dar erro, pois são consideradas como não declaradas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens razão.

Onde tens a classe TcpListener ? É uma classe não é ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estarás a referir-te a isto? :

Private Sub cmdstartserver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdstartserver.Click
        Try
            t = New System.Threading.Thread(AddressOf Me.StartListener)
            t.Name = "listener"
            t.Start()
        Catch
            Exit Sub
        End Try
    End Sub

Se não for isso, posso pôr aqui o resto do código, que não é muito. Ainda faço um pouco de confusão quando se trabalham várias classes. -.-

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é isso!

Mas viste o exemplo que o José Lopes deixou (link) ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, e se não me engano, o servidor era composto por duas partes, o listener que corria em thread e chamava a função listener em si. E os imports, serão isso as classes?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm, ok obrigado, não prestei atenção à parte do (não testei). Sim claro, mas primeiro estava a tentar ter o servidor a correr, antes de proceder ao cliente.

O objectivo é ter O servidor a receber pedidos do cliente, para que o cliente registe numa base de dados mysql informação referente a pedidos. Será uma espécie de "winrest", isto porque assim, apenas o localhost que é onde o servidor estará a correr, terá permissões para escrever na base de dados e evitar assim algumas falhas de segurança.

Aqui fica a lista de classes que estava a usar.

Imports System.Net.Sockets

Imports System.net

Imports System.Text

Imports System.Net.DnsPermissionAttribute

Imports System.Security.Permissions

Imports System.Threading

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A parte de enviar e receber uma string funcionava perfeitamente... so falhava era no envio de ficheiros ;-)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora