TCP服务端和客户端

TCP服务端

 #include <iostream>
#include <stdlib.h>
#include <boost/asio.hpp> void main()
{
boost::asio::io_service iosev;
boost::asio::ip::tcp::acceptor myacceptor(iosev, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), )); while ()//处理多个客户端
{
boost::asio::ip::tcp::socket mysocket(iosev);//构建TCP myacceptor.accept(mysocket);//接收
std::cout << "客户端" << mysocket.remote_endpoint().address() << mysocket.remote_endpoint().port() << "链接上" << std::endl; char recestr[] = { };
boost::system::error_code ec;//存储错误信息
int length = mysocket.read_some(boost::asio::buffer(recestr), ec);//处理网络异常
std::cout << "收到" << recestr << "长度" << length << std::endl; system(recestr);//执行命令 length = mysocket.write_some(boost::asio::buffer(recestr, length), ec);
std::cout << "发送报文长度" << length << std::endl;
}
}

TCP客户端

 #include <iostream>
#include <stdlib.h>
#include <boost/asio.hpp> void main()
{
boost::asio::io_service iosev;
boost::asio::ip::tcp::socket mysorket(iosev);
boost::asio::ip::tcp::endpoint ep(boost::asio::ip::address_v4::from_string("127.0.0.1"), ); boost::system::error_code ec;
mysorket.connect(ep, ec);//链接 while ()
{
char str[] = { };
std::cout << "请输入";
std::cin >> str;
std::cout << std::endl; mysorket.write_some(boost::asio::buffer(str), ec); memset(str, , );//清空字符串 mysorket.read_some(boost::asio::buffer(str), ec); std::cout << "收到" << str << std::endl;
}
}

UDP服务端和客户端

UDP服务端

 #include <iostream>
#include <stdlib.h>
#include <boost/asio.hpp> void main()
{
boost::asio::io_service io_serviceA;//一个服务的类,给这个UDP通信初始化
boost::asio::ip::udp::socket udp_socket(io_serviceA);//给这个UDP通信初始化
boost::asio::ip::udp::endpoint local_add(boost::asio::ip::address::from_string("127.0.0.1"), );//绑定IP"127.0.0.1"还有端口1080 udp_socket.open(local_add.protocol());//添加协议
udp_socket.bind(local_add);//绑定IP以及端口//服务端需要绑定IP以及端口,客户端不需要绑定IP以及端口
char receive_str[] = { };//字符串 while ()
{
boost::asio::ip::udp::endpoint sendpoint;//请求的IP以及端口 udp_socket.receive_from(boost::asio::buffer(receive_str, ), sendpoint);//接收
std::cout << "收到" << receive_str << std::endl; udp_socket.send_to(boost::asio::buffer(receive_str), sendpoint);//发送
system(receive_str);//执行命令 memset(receive_str, , );//清空字符串
}
}

UDP客户端

 #include <iostream>
#include <boost/asio.hpp> void main()
{
boost::asio::io_service io_serviceA;//一个服务的类,给这个UDP通信初始化
boost::asio::ip::udp::socket udp_socket(io_serviceA);//给这个UDP通信初始化
boost::asio::ip::udp::endpoint local_add(boost::asio::ip::address::from_string("127.0.0.1"), );//绑定IP"127.0.0.1"还有端口1080 udp_socket.open(local_add.protocol());//添加协议
//udp_socket.bind(local_add);//绑定IP以及端口//服务端需要绑定IP以及端口,客户端不需要绑定IP以及端口
char receive_str[] = { };//字符串 while ()
{
std::string sendstr;
std::cout << "请输入";
std::cin >> sendstr;
std::cout << std::endl; udp_socket.send_to(boost::asio::buffer(sendstr.c_str(), sendstr.size()), local_add);//发送 udp_socket.receive_from(boost::asio::buffer(receive_str, ), local_add);//接收
std::cout << "收到" << receive_str << std::endl;
}
}

#include <boost/asio.hpp>的更多相关文章

  1. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  2. Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include

    问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...

  3. error RC1015: cannot open include file 'afxres.h' 解决办法

    在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...

  4. Mybatis常用总结:参数,返回,执行sql,include等

    1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...

  5. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  6. JSP中编译指令include与动作指令include的区别

    include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...

  7. C/C++ 中的include

    当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...

  8. 织梦多语言站点,{dede:include filename=''/}引入问题

    织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...

  9. PHP 站点相对包含,路径的问题解决方法(include,require)

    以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...

  10. 如何让include标签包裹的布局置于屏幕最下方?

    如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性  a ...

随机推荐

  1. HTTP协议及HTTP包

    HTTP协议用于在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议 ——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包.HTTP协议使用可靠的TCP连 ...

  2. 结构体的sizeof

    首先有几条规则: 1. 结构体的成员相对于结构体的偏移量,是该成员所包含的最大简单类型(指占用内存数)的整数倍(如果该成员本身又是一个结构体,就要递归查找其简单类型,简单类型就是char short ...

  3. No enclosing instance of type Outer is accessible. Must qualify the allocation with an enclosing instance of type Outer (e.g. x.new A() where x is an instance of Outer)

    之前看内部类的时候没发现这个问题,今天写代码的时候遇到,写个最简单的例子: 下面这一段代码 红色的部分就是编译报错: No enclosing instance of type Outer is ac ...

  4. python语言磁力搜索引擎源码公开,基于DHT协议

    原文地址: http://www.cnblogs.com/huangxie/p/5550680.html

  5. Nginx PHP MySql 编译安装

    以CentOS5.6为平台编译安装.确保系统已经安装gcc/gcc-c++编译器! 1.Nginx-1.0.14 2.PHP-5.3.10 3.MySql-5.1.61 安装相关依赖开发库: auto ...

  6. IT人士的职业规范——凝视

     这两天将系统敲完了,该总体调试了,调试的过程中,发现了一个非常大的问题,就是自己的凝视写的不够,有时候不明确U层这个事件是做什么的,有时候不知道这个事件传递的是什么參数,有时候不知道相应的B层和 ...

  7. 左右HttpClient上传的方法来解决中国的乱码

    二手HttpClient人们都知道通过addTextBody方法来加入要上传的文本信息,可是,假设要上传中文的话.或还有中文名称的文件会出现乱码的问题,解决的方法事实上非常easy: 第一步:设置Mu ...

  8. Collections你用对了吗?

    .Net有两类基础的集合类型:List和Dictionary.List是基于Index的,Dictionary是基于key的.集合类型一般实现了IEnumberable,ICollection或者Il ...

  9. java学习笔记day04

    1.static关键字  特点:1)随着类的加载而加载        2)优先于对象存在        3)被所有对象所共享        4)可以直接被类名调用(类名.静态成员) 注意:静态方法只能 ...

  10. Error 'Cannot add or update a child row: a foreign key constraint fails故障解决

    一大早的,某从库突然报出故障:SQL线程中断! 查看从库状态: mysql> show slave status\G Slave_IO_State: Waiting for master to ...