Ir para conteúdo
Fórum Script Brasil
  • 0

Redes


§uiciDa£

Pergunta

Aew galera, eu to desenvolvendo um programa pra uma lanhouse,porém sou meio leigo no assunto de redes com .net, gostaria de saber se você's podem me indicar alguns links, tutoriais e livros pra mim me aprofundar mais ...

tipo, gostaria de saber algumas questoes como, como mandar imagens, como checar se a conexão está com problema, pegar nome dos computadores(de acordo com o ip), algumas coisas básicas assim ...

vlw galeraaa

t+

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Eu uso o vs 2005 express, é eu já tenho conehcimento da clsse system.net, e já fiz alguns exemplos com as classes system.net.sockts e mail ...

porem nd muito profundo, eu gostaria de souber se você's não tem nenhum livro (ingles ou portugues) pra me indicar ou senão um tutorial ou algo do genero...

vlw aí gray, t+

Link para o comentário
Compartilhar em outros sites

  • 0

taa hehe, foi mal =P .

Então Gray, eu tava fazendo um programa para uma lan house(que alguns parentes meu vão abrir), então eu gostaria de ter noções de como se comunicar com multiplos computadores, de como enviar imagens (pois o sistema terá meio que um "bisbiloteiro", onde o server podra ver as ações dos outros computadores) e como enviar arquivos.

Daí, eu acho que isos é o suficiente, plois do resto, como abrir uma estação de trabalho, bloquea-la, e fechar programas acredito que td isos é feito no programa cliente, que pelo server eu mando uma string(acho) do tipo "bloqEstação" daí o sistema bloqueiae assim em diante ...

espero que você's possam me ajudar, brigadão, t+

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, esse tipo de comunicação você pode realizar através de Sockets. No namespace System.Net.Sockets você encontrará classes para lher ajudar neste caso. O conceito de sockets é o mesmo para qualquer linguagem de programação, portanto eu posso te recomendar o tutorial de sockets que escrevi para o VB6: http://www.onmasters.com.br/?area=ler_arti...os&artid=64

É claro que você não vai ter como colocar o código mostrado em prática no VB.NET do mesmo jeito que no VB6, mas já dá pra ter uma noção.

Quando eu tiver tempo vou ver se faço uma versão para .NET deste tutorial.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

aí gray, segui seu tutorial e com masi uma pesqusiada consegui fazer algumas cosisinhas bem legais até ^^ ...

eu gostaria de saber mais uma coisa, tipo, sempre que o servidor espera uma conexao ele para 9literalmente) até recebber a conexao do cliente ... existe um meio de contornar isso ?

eu estava pensando em usar threads, amsi não existe mais ennhum jeito, sei la, não me dou bem com threads xP

hehe, t+ aew

Link para o comentário
Compartilhar em outros sites

  • 0

aí gray, segui seu tutorial e com masi uma pesqusiada consegui fazer algumas cosisinhas bem legais até ^^ ...

:)

eu gostaria de saber mais uma coisa, tipo, sempre que o servidor espera uma conexao ele para 9literalmente) até recebber a conexao do cliente ... existe um meio de contornar isso ?

Sim, se me lembro bem é só você utilizar os métodos começados por "Begin" e "End". Esses métodos são assíncronos, ou seja, não param o processamento.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Hum, você fala do beginconect do TcpClient ??

Esse também. Mas, no caso que você citou, do servidor parar para esperar a conexão, seria o BeginAcceptTcpClient do TcpListener.

você teria algum exemplo gray pra facilita as coisas aqui xP ???

Claro. Declare estas duas classes:

    Class Servidor
        Private l As TcpListener
        Private c As TcpClient

        Public Sub New(ByVal ip As IPAddress, ByVal porta As Long)
            l = New TcpListener(ip, porta)
        End Sub

        Public Sub Aguardar()
            l.Start()

            l.BeginAcceptTcpClient(New AsyncCallback(AddressOf ConexãoAssíncrona), l)
        End Sub

        Private Sub ConexãoAssíncrona(ByVal ar As IAsyncResult)
            c = l.EndAcceptTcpClient(ar)
            MessageBox.Show("Conectou!")
        End Sub
    End Class
    Class Cliente
        Private c As TcpClient

        Public Sub New()
            c = New TcpClient()
        End Sub

        Public Sub Conectar(ByVal ip As IPAddress, ByVal porta As Integer)
            c.Connect(ip, porta)
        End Sub
    End Class
E lembre-se de importar os namespaces:
Imports System.Net
Imports System.Net.Sockets
Depois, coloque dois botões em um form (um para aguardar a conexão, que é o papel do servidor) e outro para se conectar (que é o papel do cliente). Coloque o seguinte código no evento Click do botão Servidor:
        Dim server As New Servidor(New IPAddress(New Byte() {127, 0, 0, 1}), 1984)
        server.Aguardar()
E o seguinte no evento Click do botão Cliente:
        Dim client As New Cliente()
        client.Conectar(New IPAddress(New Byte() {127, 0, 0, 1}), 1984)
Execute o projeto e clique no botão Servidor. Você vai reparar que o programa *não* irá mais travar esperando a conexão. No entanto, ele vai estar esperando e você pode comprovar isso clicando no botão Cliente. Ao clicar neste, ele vai se conectar ao servidor e o mesmo emitirá uma MessageBox informando que a conexão foi estabelecida. A linha importante no código acima (que está na classe Servidor) é:
l.BeginAcceptTcpClient(New AsyncCallback(AddressOf ConexãoAssíncrona), l)

No caso, passamos para o método BeginAcceptTcpClient uma função de retorno (chamada de callback), que será invocada quando a conexão for estabelecida. Como você vai ver, tudo que está no método ConexãoAssíncrona só é executado quando a conexão é estabelecida.

Essa mesma idéia pode ser utilizada para o recebimento (BeginRead) e envio (BeginWrite) de dados (e não só para a conexão, como é o exemplo acima).

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Aeew gray, já consegui, já fiz ateh alguns testes com beginRead e beginWrite, está indo que é uma blza =D ...

mais gray, eu qria sabe se você sabe algum tuto, ou tem algum exemplo de um servidor que aceite multiplas conexoes, pois na lan, serao 15 computadores, e eu não intendi direito, como mandar os arquivos para um determinado ip, ou nome de maquina sei la xp ...

e mais alguma coisa, você pode me indicar algum lugar que fale sobre como passar uma imagem para bytes e depois decodificala ?

eu já vi isso com banco de dados, mais nunca mais achei x/

vlw cara, você é 10 ...

Link para o comentário
Compartilhar em outros sites

  • 0

Aeew gray, já consegui, já fiz ateh alguns testes com beginRead e beginWrite, está indo que é uma blza =D ...

Legal! :D

mais gray, eu qria sabe se você sabe algum tuto, ou tem algum exemplo de um servidor que aceite multiplas conexoes, pois na lan, serao 15 computadores, e eu não intendi direito, como mandar os arquivos para um determinado ip, ou nome de maquina sei la xp ...

Um jeito de fazer isso é deixando aquele código de conexão em um loop e usando um objeto ManualResetEvent para sinalizar quando alguém se conecta. Na linha...

c = l.EndAcceptTcpClient(ar)
... o objeto "c" se torna um novo cliente conectado, portanto você pode fazer uma lista de clientes conectados (a fim de poder passar mensagens para todos ou para um específico).
e mais alguma coisa, você pode me indicar algum lugar que fale sobre como passar uma imagem para bytes e depois decodificala ? eu já vi isso com banco de dados, mais nunca mais achei x/
Você só tem que ler o conteúdo do arquivo para uma string, o que pode ser feito assim:
        Dim dados As String
        Dim origem As New IO.StreamReader("d:\imagem.gif", System.Text.Encoding.Default)
        dados = origem.ReadToEnd()
        origem.Close()
Depois você vai enviar o que estiver no objeto "dados" pelo socket. E, do outro lado, ao receber tudo você só vai ter que fazer:
        Dim destino As New IO.StreamWriter("d:\teste.gif", False, System.Text.Encoding.Default)
        destino.Write(dados)
        destino.Close()

vlw cara, você é 10 ...

:D

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...