• <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>
            隨筆-167  評論-8  文章-0  trackbacks-0
            一、緒言
              udp是一種面向非連接,不可靠的通訊協議,相對于tcp來說,雖然可靠性不及,但傳輸效率較高。所以在網絡上仍有很大的用途。這幾日需要了解下udp通訊的過程,上網發現這方面的資料還挺少。于是仔細的翻找了下msdn,基本上搞清楚了udp通訊的過程。做了一個測試的例子。希望對大家有幫助。

            二、udp的通訊過程

            server端: open a socket(socket)--->name the socket(bind)--->send and receive data(sendto recvfrom)--->close socket(closesocket)
            client端: open a socket(socket)---------------------------->send and receive data(sendto recvfrom)--->close socket(closesocket)

              server端無需listen,client端無需connect,因此udp中server和client的區別相對較模糊。只要調用sendto和recvfrom就可以給指定的地址收發數據,但并不保證收發的數據的完整性和可靠性。

            三、示例
              udpserver主要代碼:
             1 void main()
             2 {
             3     SOCKET socket1;
             4 
             5     InitWinsock();
             6     struct sockaddr_in local;
             7     struct sockaddr_in from;
             8     int fromlen =sizeof(from);
             9     local.sin_family=AF_INET;
            10     local.sin_port=htons(1000);             ///監聽端口
            11     local.sin_addr.s_addr=INADDR_ANY;       ///本機
            12 
            13     socket1=socket(AF_INET,SOCK_DGRAM,0);
            14     bind(socket1,(struct sockaddr*)&local,sizeof local);
            15     while (1)
            16     {
            17         char buffer[1024]="\0";
            18         printf("waiting for message from others-------------\n");
            19         if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR)
            20         {
            21             printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer);
            22             ////給cilent發信息
            23             sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&from,fromlen);
            24 
            25         }
            26         Sleep(500);
            27     }
            28     closesocket(socket1);
            29 }

            udpcilent主要代碼:
             1 void main()
             2 {
             3     SOCKET socket1;
             4 
             5     InitWinsock();
             6     struct sockaddr_in server;
             7     int len =sizeof(server);
             8     server.sin_family=AF_INET;
             9     server.sin_port=htons(1000);                      ///server的監聽端口
            10     server.sin_addr.s_addr=inet_addr("168.168.0.10"); ///server的地址 
            11 
            12     socket1=socket(AF_INET,SOCK_DGRAM,0);
            13     while (1)
            14     {
            15         char buffer[1024]="\0";
            16         printf("input message\n");
            17         scanf("%s",buffer);
            18         if (strcmp(buffer,"bye")==0)
            19             break;
            20         if (sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*)&server,len)!=SOCKET_ERROR)
            21         {    
            22             if (recvfrom(socket1,
            23                                         buffer,
            24                                         sizeof buffer,
            25                                         0,
            26                                         (struct sockaddr*)&server,&len) != SOCKET_ERROR)
            27                 printf("rece from server:%s\n",buffer);
            28         }        
            29     }
            30     closesocket(socket1);
            31 }
            32 
            四、結束語
              udp通訊比tcp簡單了很多,在數據可靠性不是很高的情況下,有使用的價值。
            posted on 2009-07-23 17:55 老馬驛站 閱讀(2456) 評論(0)  編輯 收藏 引用 所屬分類: windowsprotocol
            精品多毛少妇人妻AV免费久久| 久久婷婷国产剧情内射白浆| 好久久免费视频高清| 亚洲国产精品久久久久网站| 久久97久久97精品免视看| 伊人精品久久久久7777| 久久久久高潮综合影院| av国内精品久久久久影院| 曰曰摸天天摸人人看久久久| 亚洲精品无码专区久久同性男| 亚洲国产精品无码久久98| 久久99精品国产自在现线小黄鸭 | 亚洲乱码中文字幕久久孕妇黑人 | 久久精品中文无码资源站| 欧美久久综合性欧美| 99久久精品免费看国产一区二区三区 | 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 久久99精品久久久久久9蜜桃| 精品多毛少妇人妻AV免费久久| 久久中文娱乐网| 久久天堂AV综合合色蜜桃网 | 精品久久久久久久久午夜福利| 青青久久精品国产免费看| 久久久久亚洲AV无码麻豆| 久久99国产精品久久99小说| 99久久精品费精品国产| 国内精品人妻无码久久久影院| 香蕉久久AⅤ一区二区三区| 欧美精品一本久久男人的天堂| 久久亚洲AV成人无码国产| 伊人久久综合精品无码AV专区| 理论片午午伦夜理片久久| 国产日韩久久免费影院| 久久精品国产91久久综合麻豆自制 | 久久久久久国产精品美女| 日本久久久久久中文字幕| 久久国产精品成人片免费| 无遮挡粉嫩小泬久久久久久久| 中文字幕精品无码久久久久久3D日动漫 | 久久人搡人人玩人妻精品首页| 99精品伊人久久久大香线蕉|