Sockets em C++

2 respostas
R

Minha pergunta talvez seja um pouco batida, mas vamos lá.

Eu preciso criar um módulo de comunicação por sockets em C++, e eu vi que existem bibliotecas diferentes em Windows e Linux.

Fico com duas opções:

  1. Fazer uma implementação usando um POSIX da vida (que eu não conheço bem)

  2. Utilizar as diretivas de pré-processamento para compilar o módulo de Windows e Linux dependendo do sistema em que estou compilando.

Aos mais experientes, qual seria a melhor opção?

Embora a opção (1) seja a que eu escolheria de cara, me pergunto se a (2) não traria uma performance melhor na teoria, já que está “otimizada” para os sistemas a que estou codificando.

2 Respostas

P

cara eu não me preocuparia em performance num primeiro momento. trabalhar com Sockets é trabalhar com I/O e isso, acredite, ja é gargalo suficiente.

é claro que codigo ineficiente ainda pode piorar, mas isso esta, grosso modo, mais ligado a como vc lê e escreve, se usa buffer e de qual tamanho, se é sincrono ou assincrono, etc.

minha pergunta, sincera:

  1. vc precisa muito que o seu modulo seja cross-plataform?

  2. quando vc fala Linux o seu target é apenas Linux ou qualquer sabor de unix como MacOS, FreeBSD, etc?

agora vc tem muito mais opções, cross-platform ou não, em C++:

em especial eu ja vi a galera falar desta, que usa a Boost ( e a Boost é bem conceituada no mundo C++)

http://www.boost.org/doc/libs/1_62_0/doc/html/boost_asio.html

R

Olá.

  1. Esse projeto vai ser incorporado a outro que pretende ser cross-platform. Por isso já queria fazê-lo dessa forma e não me preocupar mais com ele.

  2. Me expressei mal, seria Unix mesmo.

Vou acabar usando uma dessas bibliotecas mesmo, obrigado pela ajuda =D

Criado 13 de dezembro de 2016
Ultima resposta 13 de dez. de 2016
Respostas 2
Participantes 2