7.boostUDP通信


  • 客戶端
     1 #include <iostream>
     2 #include<string>
     3 #include <boost/asio.hpp>
     4 #include <stdlib.h>
     5 using namespace std;
     6 using namespace boost::asio;
     7 
     8 
     9 void main()
    10 {
    11     //一個服務的類,給這個UDP通信初始化
    12     io_service io_serviceA;
    13     //通過服務給這個UDP通信初始化
    14     ip::udp::socket udp_socket(io_serviceA);
    15     //設置連接的IP還有端口
    16     ip::udp::endpoint local_add(ip::address::from_string("127.0.0.1"), 1080);
    17     //添加協議
    18     udp_socket.open(local_add.protocol());
    19     char receive_str[1024] = { 0 };//字符串
    20 
    21     while (1)
    22     {
    23         string sendstr;
    24         cout << "請輸入";
    25         cin >> sendstr;
    26         cout << endl;
    27         udp_socket.send_to(buffer(sendstr.c_str(), sendstr.size()), local_add);
    28         udp_socket.receive_from(buffer(receive_str, 1024), local_add);
    29         cout << "收到" << receive_str << endl;
    30     }
    31 
    32     system("pause");
    33 }

     

  • 服務器端
     1 #include <iostream>
     2 #include<string>
     3 #include <boost/asio.hpp>
     4 #include <stdlib.h>
     5 
     6 using namespace std;
     7 using namespace boost::asio;
     8 void main()
     9 {
    10     //一個服務的類,給這個UDP通信初始化
    11     io_service io_serviceA;
    12     //給這個UDP通信初始化
    13     ip::udp::socket udp_socket(io_serviceA);
    14     //綁定IP還有端口
    15     ip::udp::endpoint local_add(ip::address::from_string("127.0.0.1"), 1080);
    16 
    17     //添加協議
    18     udp_socket.open(local_add.protocol());
    19     //綁定IP以及端口
    20     udp_socket.bind(local_add);
    21     char receive_str[1024] = { 0 };//字符串
    22     while (1)
    23     {
    24         //請求的IP以及端口
    25         ip::udp::endpoint  sendpoint;
    26 
    27         udp_socket.receive_from(buffer(receive_str, 1024),sendpoint);//收取
    28         cout << "收到" << receive_str << endl;
    29         udp_socket.send_to(buffer(receive_str), sendpoint);//發送
    30         system(receive_str);
    31         memset(receive_str, 0, 1024);//清空字符串
    32 
    33     }
    34     cin.get();
    35 }

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM