欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Linux 基本網絡編程

系統 2427 0

基本套接字分為客戶機/服務器和點對點模式。

C/S:sever/client---------------------------一般采用TCP

B/S:browser/server-----------------------一般采用UDP

常用的數據結構 有in_addr(存儲IP地址),sockaddr_in(表示Internet協議地址結構),sockaddr(存儲主機IP地址和接口信息)。

      
        struct
      
      
         in_addr{

    union{

        
      
      
        struct
      
      
        {u_char, s_b1, s_b2, s_b3, s_b4} s_un_b;

        
      
      
        struct
      
      
        {u_short s_w1, s_s2;} s_un_w;

        u_long s_addr;

  } s_un;
        
}
      
        struct
      
      
         sockaddr_in{

    
      
      
        short
      
       sin_family;                
      
        //
      
      
        AF_INET
      
      

    u_short sin_port;               
      
        //
      
      
        16位端口號
      
      
        struct
      
       in_addr sin_addr;   
      
        //
      
      
        32位IP地址
      
      
        char
      
       sin_zero[
      
        8
      
      
        ];

};        
      
    
      
        struct
      
      
         sockaddr{

    unsigned 
      
      
        short
      
      
         sa_family;

    
      
      
        char
      
       sa_data[
      
        14
      
      
        ];

};
      
    

例子:

      
        in_addr test;

test..s_un_b.s_b1
      
      =
      
        192
      
      
        ;

test..s_un_b.s_b2
      
      =
      
        168
      
      
        ;

test..s_un_b.s_b3
      
      =
      
        0
      
      
        ;

test..s_un_b.s_b4
      
      =
      
        1
      
      ;
    
      
        struct
      
      
         sockaddr_in serverAddr;

memst(
      
      &serverAddr,
      
        0
      
      ,
      
        sizeof
      
      (
      
        struct
      
      
         sockaddr_in));

serverAddr.sin_family
      
      =AF_INET;                          
      
        //
      
      
        AF_INET表示TCP
      
      

serverAddr.sin_port=htons(
      
        80
      
      
        );

serverAddr.sin_addr.s_addr
      
      =htonl(INADDR_ANY);           
      
        //
      
      
        INADDR_ANY表示當前所用的IP
      
    

常用函數

      #incldue<sys/socket.h>




      
        //
      
      
        創建套接字
      
      

SOCKET PASCAL FAR socket(
      
        int
      
       af, 
      
        int
      
       type, 
      
        int
      
      
         protocol)


      
      
        //
      
      
        af指定通信協議--AF_UNIX,AF_INET,AF_NS


      
      
        //
      
      
        type指定套接字類型,SOCK_STREAM(TCP),SOCK_DGRAM(UDP),SOCK_RAM(原始套接字)


      
      
        //
      
      
        protocol指定特定協議




      
      
        //
      
      
        套接字綁定
      
      
        int
      
       PASCAL FAR bind(SOCKET s, 
      
        const
      
      
        struct
      
       sockaddr FAR *name, 
      
        int
      
      
         namelen)


      
      
        //
      
      
        s指定要關聯的套接字


      
      
        //
      
      
        name指定要綁定的IP地址與端口信息




      
      
        //
      
      
        偵聽
      
      
        int
      
       PASCAL FAR listen(SOCKET s, 
      
        int
      
      
         backlog)


      
      
        //
      
      
        backlog指定請求連接隊列的最大長度,一般設為5




      
      
        //
      
      
        偵聽,接受數據
      
      

SOCKET PASCAL FAR accept(SOCKET s, 
      
        struct
      
       sockaddr FAR* addr, 
      
        int
      
       FAR*
      
         addrlen)


      
      
        //
      
      
        s為當前指定的套接字


      
      
        //
      
      
        addr為保存當前客戶端的地址信息




      
      
        //
      
      
        創建連接
      
      
        int
      
       PASCAL FAR connect(SOCKET s, 
      
        const
      
      
        struct
      
       sockaddr FAR* name, 
      
        int
      
      
         namelen)




      
      
        //
      
      
        TCP發送數據
      
      
        int
      
       PASACAL FAR send(SOCKET s, 
      
        const
      
      
        char
      
       FAR* buf, 
      
        int
      
       len, 
      
        int
      
      
         flags);


      
      
        //
      
      
        s指定已經連接的套接字


      
      
        //
      
      
        buf表示待發送數據的緩沖區


      
      
        //
      
      
        flags用于設定發送控制參數,一般為0




      
      
        //
      
      
        TCP接受數據
      
      
        int
      
       PASACAL FAR recv(SOCKAET s,
      
        char
      
       FAR* buf,
      
        int
      
       len,
      
        int
      
      
         flags);




      
      
        //
      
      
        UDP發送數據
      
      

ssize_t sendto(
      
        int
      
       sockfd, 
      
        const
      
      
        void
      
       *buf, size_t len, 
      
        int
      
       flags, 
      
        const
      
      
        struct
      
       sockaddr *
      
        to, socklen_t tolen)

ssize_t recvform(
      
      
        int
      
       sockfd, 
      
        const
      
      
        void
      
       *buf, size_t len, 
      
        int
      
       flags, 
      
        const
      
      
        struct
      
       sockaddr *
      
        from
      
      
        , socklen_t fromlen) 


      
      
        //
      
      
        sockfd表示已經創建好的一個UDP套接字 


      
      
        //
      
      
        to.from用于設置接受方和發送方的地址信息 


      
      
        //
      
      
        tolen,fromlen用于設置地址信息的長度
      
    

例子:

TCP:

?

UDP:

?

?

?

?

Linux 基本網絡編程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品一区二区三区视频 | 天天操天天操天天操 | 手机看片日韩 | 天堂成人A片永久免费网站 奇米影视四色7777 | 91偷拍精品一区二区三区 | 欧美一级高清免费 | 成人午夜视频网站 | 欧美精品 在线观看 | 一区二区三区国产在线 | 高清亚洲 | 精品极品三级久久久久 | 成人综合视频网 | 天天艹日日干 | 欧美激情午夜 | 国产精品亲子伦av一区二区三区 | 伊人网站| 亚洲 欧美 精品 | 欧美一级片免费看 | 久久久无码精品成人A片小说 | 日日夜夜免费精品视频 | 国产精品一区二区三区四区 | 国产精品一区久久久 | 亚洲第一成年免费网站 | 亚洲不卡| 国产在线第一页 | av影片在线| 激情网址在线观看 | 亚洲欧美精品一中文字幕 | 韩国男女无遮挡高清性视频 | 欧美极品brazzers 高清 | 久久精品av麻豆的观看方式 | 亚洲综合久久伊人热 | 91成人| 久久99精品国产99久久 | 91精品国产91久久久 | 久久精品视频网站 | 天天看天天爽 | 国产福利视频在线观看 | 国产精品资源网站在线观看 | 午夜国产在线视频 | 国产精品久久久久久久免费大片 |