Pergunta

Esta deve ser muito óbvio, mas como faço para fazer um winsock escutar uma porta específica (receber dados?) Eu não posso encontrar um método que me permite fazê-lo!

Lamentamos que esta é provavelmente tão óbvio.

Eu estou tentando fazer um aplicativo de bate-papo, que é, obviamente, funcionando em uma configuração de servidor / cliente.

Foi útil?

Solução

Você ligam o socket, e depois ouvir e aceitar conexões. Descritos em mais detalhes em Começando com WinSock . Há também um bom guia às tomadas BSD, que você deve ler também.

Para .NET, você provavelmente quer Sistema. Net.Sockets.Socket (e é Bind / Ouvir / Aceitar / Enviar / Receber métodos) em vez de WinSock nativo, mas os conceitos são os mesmos, então eu vou deixar todas as ligações.

Outras dicas

Ao usar sockets TCP você ligar, ouvir e aceitar e, eventualmente, recv. Você pode encontrar alguns tutoriais sobre aqui ou confira a documentação oficial MSDN.

A API winsock é baseado em BSD sockets UNIX'; então eles são muito, muito similar. Você pode querer olhar para isso. Um livro que eu tenho recentemente é Rede UNIX Programação por Richard Stevens e ele explica praticamente tudo o que há para saber sobre soquetes.

Você também pode considerar a execução de suas órbitas em um segmento separado para melhorar a legibilidade e performance.

Edit: Como para escutar em uma porta específica; este é o parâmetro sin.port do seu struct SOCKADDR_IN.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top