zoukankan      html  css  js  c++  java
  • 6.boostTCP通信

    • 客户端
       1 #include <boost/asio.hpp>
       2 #include <iostream>
       3 #include <stdlib.h>
       4 using namespace std;
       5 using namespace boost::asio;
       6 
       7 void main()
       8 {
       9     //创建io服务
      10     io_service iosev;
      11     //通过io服务初始化套接字
      12     ip::tcp::socket mysorket(iosev);
      13     //设置连接
      14     ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"), 1100);
      15 
      16     //保存异常信息
      17     boost::system::error_code ec;
      18     //连接
      19     mysorket.connect(ep, ec);
      20 
      21     while (1)
      22     {
      23         char str[1024] = { 0 };
      24         cout << "请输入";
      25         cin >> str;
      26         cout << endl;
      27 
      28         //通过套接字发送消息
      29         mysorket.write_some(buffer(str), ec);
      30         //清空字符串
      31         memset(str, 0, 1024);
      32         //接收字符串
      33         mysorket.read_some(buffer(str), ec);
      34         cout << "收到" << str << endl;
      35     }
      36 
      37     cin.get();
      38 }
    • boost服务器端
       1 #include <boost/asio.hpp>
       2 #include <iostream>
       3 #include <stdlib.h>
       4 
       5 
       6 using namespace std;
       7 using namespace boost::asio;
       8 
       9 
      10 
      11 void main()
      12 {
      13     //创建io服务
      14     io_service iosev;
      15     //设置接收
      16     ip::tcp::acceptor myacceptor(iosev, ip::tcp::endpoint(ip::tcp::v4(), 1100));
      17     //处理多个客户端
      18     while (1)
      19     {
      20         //通过io服务初始化套接字
      21         ip::tcp::socket mysocket(iosev);
      22         //通过套接字接收连接
      23         myacceptor.accept(mysocket);
      24         //输出连接的客户端的地址以及连上的端口号
      25         cout << "客户端" << mysocket.remote_endpoint().address() << mysocket.remote_endpoint().port() << "链接上" << endl;
      26         
      27         //接收字符串
      28         char recestr[1024] = { 0 };
      29         //存放错误信息
      30         boost::system::error_code ec;
      31         //处理网络异常
      32         int length = mysocket.read_some(buffer(recestr), ec);
      33         cout << "收到" << recestr << "长度" << length << endl;
      34         //执行收到的指令
      35         system(recestr);
      36         //发送数据
      37         length = mysocket.write_some(buffer(recestr, length), ec);
      38         cout << "发送报文长度" << length << endl;
      39     }
      40     cin.get();
      41 }
  • 相关阅读:
    Redis源码解析:28集群(四)手动故障转移、从节点迁移
    Redis源码解析:27集群(三)主从复制、故障转移
    Redis源码解析:26集群(二)键的分配与迁移
    centos 6.5 安装composer
    Centos安装php高版本
    CentOS快速搭建LAMP环境
    封装类似thinkphp连贯操作数据库的Db类(简单版)。
    php封装pdo操作数据的工具类
    php中使用mysqli和pdo扩展,测试mysql数据库的执行效率。
    php中使用mysqli和pdo扩展,测试连接mysql数据库的效率。
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8652818.html
Copyright © 2011-2022 走看看