簡體   English   中英

C ++套接字客戶端/服務器簡單消息發送者

[英]C++ socket client / server simple message sender

我是套接字概念的新手,當我嘗試遵循本教程時,無法遵循這一步驟

教程:

sockaddr_in ip;
ip.sin_family = AF_INET;
ip.sin_port = htons(99999);
ip.sin_addr.s_addr = inet_addr("10.0.0.2");

問題是當我輸入ip.sin.addr時,我無法遵循ip.sin_addr.saddr。 這個成員唯一的成員是s_un,我應該怎么做?

ip.sin_addrin_addr結構。 根據您要編碼的平台, in_addr有不同的成員可用。 例如,在Linux上,它只有一個成員:

struct in_addr {
    uint32_t s_addr;
};

在Windows上,它具有三個成員的union

struct in_addr {
    union {
        struct{
            unsigned char s_b1,
            s_b2,
            s_b3,
            s_b4;
        } S_un_b;
        struct {
            unsigned short s_w1,
            s_w2;
        } S_un_w;
        unsigned long S_addr;
    } S_un;
};

然后,預編譯器#define宏將s_addr映射到S_un.S_addr

因此,您可以始終在所有平台上的代碼中使用ip.sin_addr.s_addr ,但是它可能會解析為幕后的其他數據成員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM