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

scorch

Comunicação Cliente - Servidor: Programa Crasha (Rede)

12 mensagens neste tópico

Boas, estou com um problema. Estou a criar um programa que serve de servidor e cliente, ou seja, servidor para uns, e também pode aceder a outros como cliente.

Não sei se me estou a fazer entender :), mas é um programa de partilha de ficheiros por rede em que cada computador tem o programa e esse programa partilha os ficheiros e vai buscar ficheiros a outros computadores.

Ainda estou no inicio, portanto, para já estou a tratar de a comunicação funcionar. Como é para testes, para já uso, no cliente, o ip 127.000.000.001

O meu problema é que ao fazer a comunicação, ele crasha. Estou a usar este exemplo, só muda o ip e a porta.

Alguém sabe como resolver o problema?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exprimenta escrever o IP como deve de ser (127.0.0.1).

Alternativamente, tenta "localhost".

O "localhost" é obviamente uma DMZ, por isso só te deves preocupar em ter a mesma porta no servidor e no cliente.

Para além disto, define "crasha":

Produz algum tipo de erro? Usa step-debug para ver o que se está a passar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crasha é encravar. Não dá erro nenhum.

Fiz o step-debug e encrava ao lêr o que o servidor retorna.  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deu o exemplo do Macoratti e não código dele.

É muito diferente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código que eu tenho é o do exemplo. Ele crasha nessa parte do código, quando faço step-debug. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E não acrescentas-te mais nada? por exemplo um backgroundworker ou coisa assim?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O backgroundworker adicionei na parte do servidor. Mas não na do cliente. Ele crasha é na parte do cliente, porque é a window onde está o cliente que crasha e não a do servidor. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, estou com um problema. Estou a criar um programa que serve de servidor e cliente, ou seja, servidor para uns, e também pode aceder a outros como cliente.

O programa é só um...

Mostra o código...ninguém consegue adivinhar, só a Maya

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O programa é só um...

Mostra o código...ninguém consegue adivinhar, só a Maya

LULZ :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    Private Sub Client_Thread_DoWork()
        Dim tcpClient As New System.Net.Sockets.TcpClient()
        Console.WriteLine("Estabelecendo conexão.")
        tcpClient.Connect("127.0.0.1", porta)

        Dim networkStream As NetworkStream = tcpClient.GetStream()

        If networkStream.CanWrite And networkStream.CanRead Then
            ' executa apenas uma escrita
            Dim sendBytes As [byte]() = Encoding.ASCII.GetBytes("Tem alguém ai?")
            networkStream.Write(sendBytes, 0, sendBytes.Length)

            ' Le o NetworkStream em um buffer
            Dim bytes(tcpClient.ReceiveBufferSize) As Byte
            networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))

            ' exibe os dados recebidos do host no console
            Dim returndata As String = Encoding.ASCII.GetString(bytes)
            'Console.WriteLine(("Host retornou : " + returndata))
            MessageBox.Show("Host retornou : " + returndata)
        Else
            If Not networkStream.CanRead Then
                MessageBox.Show("Não é possível enviar dados para este stream")
                tcpClient.Close()
            Else
                If Not networkStream.CanWrite Then
                    MessageBox.Show("Não é possivel ler dados deste stream")
                    tcpClient.Close()
                End If
            End If
        End If
        ' da uma pausa para pode ver o resultado
        Console.ReadLine()
    End Sub

Encrava nas linhas sombreadas.  :(

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