亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux 基本網絡編程

系統 2339 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元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品亚洲精品 | aaaaaaa毛片 | 久久精品在 | 九九365资源稳定资源站 | 欧美人成一本免费观看视频 | 久久国产网 | 91福利精品老师国产自产在线 | 伊人网伊人 | 2018天天操天天干 | 黄色四虎影院 | 久久99热只有视精品6国产 | 99久久免费国产香蕉麻豆 | 日韩欧美国产一区二区三区四区 | 五月天中文在线 | 无遮挡无遮挡91桃色在线观看 | 亚州精品一区二区三区 | 一级黄片一级毛片 | 久久这里只有精品免费的 | 色播综合网| 99热久久久这里只有精品免费 | 九九久久99综合一区二区 | 日韩毛片| 91伊人影院 | 九九99在线视频 | 日韩精品一区二区三区中文字幕 | 男女啪啪猛烈免费网站 | 亚洲一区二区三区高清 不卡 | 亚洲精品动漫3d一区二区 | 国产一区三区二区中文在线 | 色网站在线观看 | 91青青青 | 99热在线获取最新地址 | 免费女人18毛片a级毛片视频 | 综合国产| 九天玄帝诀免费完整观看 | 欧美成人性色生活18黑人 | 国产精品国产色综合色 | 夜夜操夜夜操 | 亚洲精品国产综合久久一线 | 在线久草视频 | 中文字幕日本一区久久 |