• <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編程

            本文內容提到的套接字都是Berkely socket.

            實用套接字的四個步驟:
            1 分配空間和初始化
            2 連接
            3 傳送數據
            4 關閉

            具體算法:

            服務器端:
            #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 葉子 閱讀(502) 評論(0)  編輯 收藏 引用 所屬分類: Unix

            77777亚洲午夜久久多喷| 丁香五月综合久久激情| 久久乐国产综合亚洲精品| 国产精品九九久久免费视频 | 久久狠狠高潮亚洲精品| 青青草原综合久久| 伊人伊成久久人综合网777| 国产精品久久久久AV福利动漫| 激情综合色综合久久综合| 午夜精品久久久久久99热| 久久国产精品波多野结衣AV| 亚洲色欲久久久综合网东京热| 99久久国产主播综合精品| 伊人久久久AV老熟妇色| 久久免费视频一区| 久久精品国产福利国产秒| 囯产极品美女高潮无套久久久| 国产—久久香蕉国产线看观看| 久久丫精品国产亚洲av不卡| 免费一级欧美大片久久网| 久久国产精品-久久精品| 亚洲精品白浆高清久久久久久 | 久久久久无码国产精品不卡| 漂亮人妻被黑人久久精品| 久久这里的只有是精品23| 久久中文精品无码中文字幕| 亚洲国产精品久久久久久| 97久久久精品综合88久久| 久久久女人与动物群交毛片| 国产成人精品久久| 无码AV波多野结衣久久| 久久99精品久久久大学生| 武侠古典久久婷婷狼人伊人| 亚洲成人精品久久| 91精品国产91久久久久久青草| 久久99热精品| 国产成人久久精品麻豆一区 | 久久国产成人午夜AV影院| 久久99国产精品成人欧美| 国产高潮国产高潮久久久91| 久久国产高清一区二区三区|