• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            elva

            Linux-C-Socket編程

            本文內(nèi)容提到的套接字都是Berkely socket.

            實(shí)用套接字的四個(gè)步驟:
            1 分配空間和初始化
            2 連接
            3 傳送數(shù)據(jù)
            4 關(guān)閉

            具體算法:

            服務(wù)器端:
            #include <sys/socket.h>
            #include <netinet/in.h>

            int socket_descriptor;
            socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);

            int port = 8000;
            struct sockaddr_in sin;
            sin.sin_family = AF_INET;
            sin.sin_addr.s_addr = INADDR_ANY;
            pin.sin_port = htons(port);

            bind(socket_descriptor,(struct socketaddr *)&sin, sizeof(sin) );

            listen(socket_descriptor, 1024);

            struct sockaddr_in pin;
            int address_size;
            int temp_socket_descriptor;

            while(1) {
              temp_socket_descriptor = accept(socket_descriptor,(struct socketaddr *)&pin,  sizeof(address_size));
              ......
              close(temp_socket_descriptor);
            }


            客戶端:
            #include <sys/socket.h>
            #include <netinet/in.h>
            #include <netdb.h>     //直接影響sockaddr_in.sin_addr的填寫

            char * host_name = "127.0.0.1";
            struct hostent * server_host_name;
            server_host_name = gethostbyname(host_name);

            int port = 8000;
            struct sockaddr_in pin;
            pin.sin_family = AF_INET;
            pin.sin_addr.s_addr = htol(INADDR_ANY);
            pin.sin_addr.s_addr = ((struct in_addr *)(server_host_name->h_addr))->s_addr; 或者 pin.sin_addr = *(struct in_addr *) server_host_name->h_addr;
            pin.sin_port = htons(port);

            int socket_descriptor;
            socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);
            connect(socket_descriptor, (void *)&pin, sizeof(pin));
            .......
            close(socket_descriptor);

            posted on 2007-05-24 01:53 葉子 閱讀(501) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Unix

            久久久久99精品成人片直播| 久久精品水蜜桃av综合天堂| 久久久久亚洲AV成人网| 要久久爱在线免费观看| 影音先锋女人AV鲁色资源网久久| 久久精品国产99久久久| 久久久久九国产精品| 久久精品人人槡人妻人人玩AV| 国产精品女同一区二区久久| 国产成人综合久久精品红| 久久精品国产亚洲AV电影| 青草久久久国产线免观| 97久久精品无码一区二区天美| 亚洲а∨天堂久久精品9966| 韩国三级大全久久网站| 精品久久久无码人妻中文字幕| 99久久精品免费| 久久久久亚洲AV无码麻豆| 久久精品国产一区二区三区不卡 | 久久久久亚洲AV综合波多野结衣 | 久久精品成人免费网站| 久久精品国产亚洲αv忘忧草| 精品人妻伦九区久久AAA片69| 日本一区精品久久久久影院| 无码精品久久久天天影视| 中文字幕亚洲综合久久菠萝蜜| 99久久综合国产精品二区| 久久久久亚洲av无码专区喷水| 伊人久久大香线蕉av不卡| 久久青青草视频| 亚洲午夜精品久久久久久浪潮| 成人亚洲欧美久久久久| AAA级久久久精品无码区| 91久久精品无码一区二区毛片| 久久91综合国产91久久精品| 99久久国产热无码精品免费 | 国产成人久久精品二区三区| 精品久久久久久久| 亚洲国产精品久久久久婷婷软件| 久久99国产精品99久久| 国产精品热久久毛片|