zoukankan      html  css  js  c++  java
  • #include <boost/asio.hpp>

    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 }
  • 相关阅读:
    MSXML 解析XML文件
    内存泄露
    TCHAR CHAR LPTSTR LPCTSTR
    union过代理存根
    jquery placeholder
    SASS 编译后去掉缓存文件和map文件
    js冒泡排序
    android 下滤镜效果的实现
    ViewPagger介绍
    android下实现对wifi连接的监听
  • 原文地址:https://www.cnblogs.com/denggelin/p/5769936.html
Copyright © 2011-2022 走看看