2010-08-06 10 views
6

UDP özellikle destekliyorsa, boost :: asio :: ip :: udp :: socket soketleri kullanıyorum?Yükseltme, ntohl/htonl/ntohs/htons tipi işlevlerini kullanmanın taşınabilir bir yoludur mu?

Başlık dosyası nedir?

Yükseltme altından UDP ile ağ bayt sıralaması için hangi üstbilgileri/sınıfları kullanmam gerekiyor? Windows için

+0

[This] (http://stackoverflow.com/questions/105252/how-do-i-convert-between-big-endian-and-little-endian-values-in-c/107099#107099) görünüyor bir Boost çözümü gibi. –

+0

Htons et al hakkında taşınabilir olmayan nedir? –

+0

@ Steve-o. Bunu işaret ettiğin için teşekkürler. Uygulamanın portatif olduğunun farkındayım. Ancak, taşınabilir bir başlık bulamıyorum. Pencereler için farklı başlıklar ve bir örnek olarak * nix eklemek zorundayım. Bu yüzden platforma bağlı olarak kodu değiştirdim. Muhtemelen bir başlık oluşturacağım ve platformlara bağlı olarak başlıkları içerecek şekilde önişlemci direktifleri koyacağım. – dubnde

cevap

10

Sadece bu tüm platform bağımlı başlıklarında çeker ve verir gibi #include <boost/asio.hpp> yeterlidir bulundu :: asio :: detay :: socket_ops :: boost/asio/ayrıntılı olarak host_to_network_short /socket_ops.hpp tam ihtiyacım olan htonl/ntohl'a erişim.

Öneriler için teşekkürler.

2

POSIX.1-2001 standart Unicode adlandırma ama uyumsuz olduğuna dikkat desteklediğinden ikincisi artık tercih ediliyor, sen <winsock2.h> veya & <winsock2.h><ws2tcpip.h> seçilecek 2 yığınlar var Windows üzerinde, <sys/types.h> & <netinet/in.h> olduğunu.

2001 öncesi platformlar, <arpa/inet.h> gibi başka başlıklar gerektirebilir.

+0

Şerefe. Bu yardımcı olacak. – dubnde

6

artırmak

+0

da int64 veya çift swapping için destek işlevi var mı? – Ingemar

İlgili konular