Ir para o conteúdo
blasted

vb2005 & winsock -> server

Mensagens Recomendadas

blasted    0
blasted

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 >_<

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blasted    0
blasted

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blasted    0
blasted

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blasted    0
blasted

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?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blasted    0
blasted

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade