2009-02-27 7 views
7

SDLOpenGL을 사용하여 스레드 된 크로스 플랫폼 응용 프로그램 (Linux/Windows)을 작성 중이며 네트워킹을 수행하기 위해 나는 SDL Net2을 고려하고있었습니다. 이는 SDL_Net 위에 있기 때문에입니다.C++ 용 네트워킹 프레임 워크 (UDP 또는 TCP)?

그러나 C/C++에서는 네트워킹을 한 번도 해 본 적이 없으므로 사용 가능한 교차 플랫폼 기술에 익숙하지 않습니다. 다른 라이브러리를 제안하는 SDL_Net 또는 Net2에 경험이있는 사람이 있습니까?

+0

작성중인 응용 프로그램 유형에 대한 정보를 조금 더 제공 할 수 있습니까? 네트워크 계층을 사용하여 전송할 대상을 설명 할 수 있습니까? 신뢰할 수 없는? 대역폭 고려 사항, 대기 시간 허용 오차 등? –

답변

6

boost :: asio은 (는) 친구입니다. 그것은 크로스 플랫폼 async io 라이브러리입니다. 네트워크에 적합합니다. 부스트 사이트에 많은 샘플이 있습니다. http://www.boost.org/

1

많은 프레임 워크가 있습니다 (예 : Poco, ACE). 그것은 당신이 찾고있는 것에 달려 있습니다. OS 레이어에 원시 소켓을 만들고 그 사이에 바이트 스트림을 보내려면 다른 사람들이 제안한대로 Boost.Asio으로 갈 것입니다. HTTP를 통해 XML 문서를 보내려는 경우 다른 대안을 조사하십시오.

1

다른 사람들이 이미 말했듯이, boost :: asio은 확실히 좋은 선택입니다.

이제 이것이 "원시"네트워킹을 만드는 것입니다.

당신이 비디오 게임을하는 경우 , 또는 네트워크 성능과 같은 비디오 게임 소프트웨어, 어쩌면 더 높은 수준과 많이 권유하는 등이 경우 라이브러리에 최적화 된 것은 RakNet 라이브러리가 될 것 더 나은 선택. 이와 비슷한 경우에 또 다른 대안으로, 하위 레벨 UDP 기반 라이브러리를 원할 경우 ENet이 사용자의 요구에 맞을 수도 있습니다.