1Boost之TCP,Client and Server

简介:  客户端代码 #include <boost/asio.hpp> #include <iostream> #include <stdlib.h>   using namespace std; using namespace boost::asio;   void main()


客户端代码

#include <boost/asio.hpp>

#include <iostream>

#include <stdlib.h>

 

using namespace std;

using namespace boost::asio;

 

void main()

{

    io_service iosev;

    ip::tcp::socket mysorket(iosev);

    ip::tcp::endpoint ep(ip::address_v4::from_string("127.0.0.1"), 1100);

 

    boost::system::error_code ec;

    mysorket.connect(ep, ec);//链接

 

    while (1)

    {

        char str[1024] = { 0 };

        cout << "请输入";

        cin >> str;

        cout << endl;

        mysorket.write_some(buffer(str), ec);

        memset(str, 0, 1024);//清空字符串

        mysorket.read_some(buffer(str), ec);

        cout << "收到" << str << endl;

    }

 

    cin.get();

}

客户端代码:

服务器端代码:

#include <boost/asio.hpp>

#include <iostream>

#include <stdlib.h>

 

using namespace std;

using namespace boost::asio;

 

void main()

{

    io_service iosev;

    //这里使用ip v4协议,端口号是1100

    ip::tcp::acceptor myacceptor(iosev, ip::tcp::endpoint(ip::tcp::v4(), 1100));

    while (1)

    {

        //构建TCP

        ip::tcp::socket mysocket(iosev);

        //接受套接字

        myacceptor.accept(mysocket);

        cout << "客户端" << mysocket.remote_endpoint().address() << ":"

            << mysocket.remote_endpoint().port() << "链接上" << endl;

 

        char recestr[1024] = { 0 };

        boost::system::error_code ec;

        //处理网络异常

        int length = mysocket.read_some(buffer(recestr), ec);

        cout << "收到" << recestr << "长度" << length << endl;

        system(recestr);

        length = mysocket.write_some(buffer(recestr, length), ec);

        cout << "发送报文长度" << length << endl;

    }

    cin.get();

}

运行结果:

 

目录
相关文章
|
网络协议 关系型数据库 MySQL
启动mysql时的异常为:[ERROR] Can‘t start server: Bind on TCP/IP port. Got error: 98: Address already in used
启动mysql时的异常为:[ERROR] Can‘t start server: Bind on TCP/IP port. Got error: 98: Address already in used
|
网络协议 Linux 测试技术
我个人的Linux TCP server和client测试源码,C语言(2)(★firecat推荐★)
我个人的Linux TCP server和client测试源码,C语言(2)(★firecat推荐★)
553 0
我个人的Linux TCP server和client测试源码,C语言(2)(★firecat推荐★)
|
网络协议
TCP client
TCP client
108 0
|
网络协议
TCP server
TCP server
126 0
|
网络协议 Linux C语言
我个人的Linux TCP server和client测试源码,C语言(2)(★firecat推荐★)
我个人的Linux TCP server和client测试源码,C语言(2)(★firecat推荐★)
213 0
|
负载均衡 网络协议 Linux
我个人的Linux TCP server和client测试源码,C语言(3)(★firecat推荐★)
我个人的Linux TCP server和client测试源码,C语言(3)(★firecat推荐★)
345 0
|
网络协议 NoSQL Linux
我个人的Linux TCP server和client测试源码,C语言(1)(★firecat推荐★)
我个人的Linux TCP server和client测试源码,C语言(1)(★firecat推荐★)
291 0
|
网络协议
ETCD Client 的生命周期影响系统TCP连接资源
最近发现一个 ETCD Client 端的实现问题——ETCD 所在机器宕机或者断网的情况下,ETCD Client 无法快速重连到可用的 etcd 节点,导致 client 端不可用(该问题的描述后续发表文章介绍)。
8020 0
|
网络协议 关系型数据库 Linux
PostgreSQL pgsocket: Extension for Simple TCP/IP Socket Client
标签 PostgreSQL , pgsocket 背景 PostgreSQL 插件,向外部tpc/ip socket服务发生字节流。 pgsocket is an extension for PostgreSQL server to send bytes to remote TCP/IP socket server.
911 0
|
移动开发 网络协议 开发工具
[网络篇]ESP8266-SDK教程(三)之TCP通信Server<->Client
纳尼?昨天刚刚打印了个“Hello World!”,今天你就让我学习TCP通信?有没有搞错~哈哈,相信很多读者会很迷,其实学习这东西嘛,单单学一些比较简单的,相信没两天就没人看了,所以咱就在基础篇和网络篇穿插着去学习一下ESP8266,毕竟兴趣才是最好的老师嘛!大家以后遇到问题了,来翻文章建议大家根...
2247 0