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

            斜樹的空間

            集中精力,放棄一切的去做一件事情,只要盡力了,即使失敗了,你也不會(huì)后悔!

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              47 隨筆 :: 0 文章 :: 12 評(píng)論 :: 0 Trackbacks

            使用協(xié)議UDP,僅實(shí)現(xiàn)簡(jiǎn)單的連接功能:

            服務(wù)端:
            #pragma   comment(lib,   "ws2_32.lib ")

            #include <winsock2.h>
            #include <stdio.h>

            int main()
            {
             SOCKET socket1;
             WSADATA wsaData;


             int iErrorcode;
             if(WSAStartup(MAKEWORD(2,2), &wsaData))
             {
              printf("Winsock can not be init!");
              WSACleanup();
              return 0;
             }

             printf("server begin to create socket!\n");
             //struct sockaddr_in local;
             //struct sockaddr_in from;
             sockaddr_in local;
             sockaddr_in from;

             int fromlen = sizeof(from);

             local.sin_addr.s_addr = INADDR_ANY;
             local.sin_family =  AF_INET;
             local.sin_port = htons(5566);

             socket1 = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
             bind(socket1, (struct sockaddr *)&local, fromlen);
             
             while(1)
             {
              char buffer[1024] = "\0";

              printf("waiting message form client:");

              if(SOCKET_ERROR != recvfrom(socket1,
               buffer, sizeof(buffer), 0,
               (struct sockaddr *)&from, &fromlen))
              {
               if(strcmp(buffer, "bye") == 0)
               {
                printf("client quit!\n");
                break;
               }
               printf("recieve message form %s -- %s \n",
                inet_ntoa(from.sin_addr), buffer);
               sendto(socket1, buffer, sizeof(buffer),
                0, (struct sockaddr *)&from, fromlen);
              }
              
             }
             closesocket(socket1);

             return 0;
            }

            客戶端:
            #pragma   comment(lib,   "ws2_32.lib ")

            #include <winsock2.h>
            #include <stdio.h>

            int main()
            {
             SOCKET socket1;
             WSADATA wsaData;

             if(WSAStartup(MAKEWORD(2,2), &wsaData))
             {
              printf("can not init !\n");
              WSACleanup();
              return 0;
             }
             
             printf("client begin to create socket!\n");
             struct sockaddr_in server;
             int len = sizeof(server);

             server.sin_addr.s_addr = inet_addr("127.0.0.1");
             server.sin_port = htons(5566);
             server.sin_family = AF_INET;

             socket1 = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP );
             
             while(1)
             {
              char buffer[1024] = "\0";
              printf("input message: ");
              scanf("%s", buffer);
              if(strcmp(buffer, "bye") == 0)
              {
               sendto(socket1, "bye", 3 * sizeof(char), 0,
                (struct sockaddr *)&server, len);
               printf("exit!\n");
               Sleep(100);
               closesocket(socket1);
               break;
              }
              
              if(SOCKET_ERROR != sendto(socket1, buffer, sizeof(buffer),
               0, (sockaddr *)&server, len))
              {
               Sleep(100);
               if(recvfrom(socket1, buffer, sizeof(buffer), 0, (struct sockaddr *)&server, &len) != SOCKET_ERROR)
               {
                printf("recieve from server : %s \n", buffer);
               }
              }
              
             }
             closesocket(socket1);

             return 0;
            }

            posted on 2010-05-15 21:12 張貴川 閱讀(683) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            婷婷久久综合| 色诱久久久久综合网ywww| 国产精品美女久久久网AV| 久久国产三级无码一区二区| 久久亚洲精品无码播放| 热re99久久6国产精品免费| 伊人色综合久久| 蜜臀久久99精品久久久久久小说 | 亚洲人成伊人成综合网久久久| 午夜欧美精品久久久久久久 | 热99RE久久精品这里都是精品免费 | 久久国产香蕉视频| 蜜臀久久99精品久久久久久小说| 久久激情五月丁香伊人| 久久精品99久久香蕉国产色戒| 香蕉久久夜色精品国产2020| 久久精品国产精品亚洲精品| 久久这里只有精品18| 久久人人爽人人爽人人爽| 国内精品久久久久久久亚洲 | 亚洲国产另类久久久精品黑人| 精品国产一区二区三区久久蜜臀| 欧美一区二区三区久久综合 | 久久久久女人精品毛片| 人人妻久久人人澡人人爽人人精品| 久久91这里精品国产2020| 亚洲国产精久久久久久久| 久久99国产精品一区二区| 69SEX久久精品国产麻豆| 久久久久无码精品国产不卡| 日产精品久久久久久久性色| 伊人久久大香线蕉AV色婷婷色| 色8激情欧美成人久久综合电| 久久99精品久久久久久水蜜桃| 国内精品久久国产大陆| 国产精品久久久天天影视| 国产精品久久精品| 国产一区二区精品久久岳| 久久精品国产99久久丝袜| 欧美精品福利视频一区二区三区久久久精品 | 狠狠色伊人久久精品综合网 |