TCP服務端和客戶端
TCP服務端
1 #include <iostream> 2 #include <stdlib.h> 3 #include <boost/asio.hpp> 4 5 void main() 6 { 7 boost::asio::io_service iosev; 8 boost::asio::ip::tcp::acceptor myacceptor(iosev, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 1100)); 9 10 while (1)//處理多個客戶端 11 { 12 boost::asio::ip::tcp::socket mysocket(iosev);//構建TCP 13 14 myacceptor.accept(mysocket);//接收 15 std::cout << "客戶端" << mysocket.remote_endpoint().address() << mysocket.remote_endpoint().port() << "鏈接上" << std::endl; 16 17 char recestr[1024] = { 0 }; 18 boost::system::error_code ec;//存儲錯誤信息 19 int length = mysocket.read_some(boost::asio::buffer(recestr), ec);//處理網絡異常 20 std::cout << "收到" << recestr << "長度" << length << std::endl; 21 22 system(recestr);//執行命令 23 24 length = mysocket.write_some(boost::asio::buffer(recestr, length), ec); 25 std::cout << "發送報文長度" << length << std::endl; 26 } 27 }
TCP客戶端
1 #include <iostream> 2 #include <stdlib.h> 3 #include <boost/asio.hpp> 4 5 void main() 6 { 7 boost::asio::io_service iosev; 8 boost::asio::ip::tcp::socket mysorket(iosev); 9 boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address_v4::from_string("127.0.0.1"), 1100); 10 11 boost::system::error_code ec; 12 mysorket.connect(ep, ec);//鏈接 13 14 while (1) 15 { 16 char str[1024] = { 0 }; 17 std::cout << "請輸入"; 18 std::cin >> str; 19 std::cout << std::endl; 20 21 mysorket.write_some(boost::asio::buffer(str), ec); 22 23 memset(str, 0, 1024);//清空字符串 24 25 mysorket.read_some(boost::asio::buffer(str), ec); 26 27 std::cout << "收到" << str << std::endl; 28 } 29 }
UDP服務端和客戶端
UDP服務端
1 #include <iostream> 2 #include <stdlib.h> 3 #include <boost/asio.hpp> 4 5 void main() 6 { 7 boost::asio::io_service io_serviceA;//一個服務的類,給這個UDP通信初始化 8 boost::asio::ip::udp::socket udp_socket(io_serviceA);//給這個UDP通信初始化 9 boost::asio::ip::udp::endpoint local_add(boost::asio::ip::address::from_string("127.0.0.1"), 1080);//綁定IP"127.0.0.1"還有端口1080 10 11 udp_socket.open(local_add.protocol());//添加協議 12 udp_socket.bind(local_add);//綁定IP以及端口//服務端需要綁定IP以及端口,客戶端不需要綁定IP以及端口 13 char receive_str[1024] = { 0 };//字符串 14 15 while (1) 16 { 17 boost::asio::ip::udp::endpoint sendpoint;//請求的IP以及端口 18 19 udp_socket.receive_from(boost::asio::buffer(receive_str, 1024), sendpoint);//接收 20 std::cout << "收到" << receive_str << std::endl; 21 22 udp_socket.send_to(boost::asio::buffer(receive_str), sendpoint);//發送 23 system(receive_str);//執行命令 24 25 memset(receive_str, 0, 1024);//清空字符串 26 } 27 }
UDP客戶端
1 #include <iostream> 2 #include <boost/asio.hpp> 3 4 void main() 5 { 6 boost::asio::io_service io_serviceA;//一個服務的類,給這個UDP通信初始化 7 boost::asio::ip::udp::socket udp_socket(io_serviceA);//給這個UDP通信初始化 8 boost::asio::ip::udp::endpoint local_add(boost::asio::ip::address::from_string("127.0.0.1"), 1080);//綁定IP"127.0.0.1"還有端口1080 9 10 udp_socket.open(local_add.protocol());//添加協議 11 //udp_socket.bind(local_add);//綁定IP以及端口//服務端需要綁定IP以及端口,客戶端不需要綁定IP以及端口 12 char receive_str[1024] = { 0 };//字符串 13 14 while (1) 15 { 16 std::string sendstr; 17 std::cout << "請輸入"; 18 std::cin >> sendstr; 19 std::cout << std::endl; 20 21 udp_socket.send_to(boost::asio::buffer(sendstr.c_str(), sendstr.size()), local_add);//發送 22 23 udp_socket.receive_from(boost::asio::buffer(receive_str, 1024), local_add);//接收 24 std::cout << "收到" << receive_str << std::endl; 25 } 26 }