• <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 葉子 閱讀(509) 評論(0)  編輯 收藏 引用 所屬分類: Unix

            无码伊人66久久大杳蕉网站谷歌 | 少妇精品久久久一区二区三区| 久久天天婷婷五月俺也去| 国产成年无码久久久免费| 国内精品人妻无码久久久影院 | 人妻系列无码专区久久五月天| 久久久久久精品免费免费自慰| 久久棈精品久久久久久噜噜| 久久黄色视频| 狠色狠色狠狠色综合久久| 久久笫一福利免费导航| 欧美亚洲另类久久综合| 亚洲中文字幕无码久久2017| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久久久亚洲精品男人的天堂| 性做久久久久久久| 久久精品中文字幕有码| 97久久精品国产精品青草| 久久精品青青草原伊人| 欧美性大战久久久久久| 99久久www免费人成精品 | 久久久久亚洲AV无码去区首| 99久久精品国内| 久久精品亚洲精品国产色婷| 欧美日韩中文字幕久久久不卡| 91亚洲国产成人久久精品| 国产婷婷成人久久Av免费高清| 免费精品久久天干天干| 日韩十八禁一区二区久久| 国产精品亚洲美女久久久| 青青热久久综合网伊人| 丁香五月网久久综合| 成人资源影音先锋久久资源网| 精品久久久久久综合日本| 精品久久久久久亚洲精品| 99久久99久久久精品齐齐| 久久精品视频免费| 国产女人aaa级久久久级| 久久久久久久国产免费看| 久久综合一区二区无码| 少妇无套内谢久久久久|