文档章节

C++面向对象网络编程之SockCli

jackhen
 jackhen
发布于 2015/07/01 20:34
字数 190
阅读 83
收藏 0
/************************************************************************/
// Copyright 2015, han_gangbiao. All rights reserved.
// 
// [Time]:      2015-7-1 20:23:54
// [Author]:    han_gangbiao
// [Info]:      TCP-Client Demo
/************************************************************************/
 
#include "stdafx.h"
#include "xsmart.h"
#include "xnet/SockConnector.h"
#include "xbase/xlogger.h"
#include "xbase/xthread.h"
#include <iostream>
#include <string>
 
int main(int argc, char* argv[])
{
    smart::XSmartLib::init();
    XLOG_SET_STDERR(true);
    std::cout<<smart::XSmartLib::getLibInfo()<<std::endl;
 
    const char* ip = "127.0.0.1";
    uint16 port = 8000;
    XNetAddr remote(ip, port);

    XSockConnector connector;
    XSockStream sock_cli;
    int ret = connector.connect(sock_cli, remote);
    if(ret < 0)
    {
        XLOG_ERROR("connect server[%s:%d] failed.", ip, port);
        return -1;
    }
    XLOG_INFO("connect success. remote[%s:%d]", remote.get_ipstr(), remote.get_port());

    while(1) {
        std::string str = "hello world";
        sock_cli.send(str.c_str(), str.length());
        SLEEP_MS(100);
        char buffer[4096] = {0};
        int bytes_receieved = sock_cli.recv(buffer, sizeof(buffer));
        buffer[bytes_received] = '\0';
        XLOG_INFO("reply data: %s", buffer);
    }

    sock_cli.close();
    smart::XSmartLib.unInit();
    return 0;
}

© 著作权归作者所有

jackhen
粉丝 2
博文 39
码字总数 13207
作品 0
杭州
后端工程师
私信 提问
BOOST.ASIO源码剖析(一)

前言 源码之前,了无秘密。 ——侯捷 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有...

moki_oschina
2018/04/11
189
0
大神有话说之c++,还在迷茫的朋友可以来看一下

C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Window...

悟空_b201
2018/05/30
0
0
C++学习路线

从学习C++到现在已经有四个年头了,但是从来没有很深入学习,有人说C++是面向对象的编程语言,但是我在这里想说的是,C++是一个多泛型的编程语言,它既可以面向过程,比如我们完全可以用C++...

长平狐
2013/12/25
597
0
C/C++,最经典的编程语言.

1、从C到C++ 计算机诞生初期,用机器语言或汇编语言编写程序; 第一种高级语言FORTRAN诞生于1954年; BASIC语言(1964)是由FORTRAN语言的简化而成的是为初学者设计的小型高级语言; C语言是1972年...

小辉灰520
2018/11/26
0
0
【北京】人人网 招聘 C++ Java 开发工程师 架构师

人人网IM系统高级C++开发工程师 工作地点:北京 工作类别:技术类 工作描述: 1)责负人人桌面服务器端的开发; 2)责负网站的实时聊天及实时消息推送系统的开发 3)系统的优化,改进及日常维...

antonio
2011/11/25
931
3

没有更多内容

加载失败,请刷新页面

加载更多

nginx访问日志/日志切割/静态文件过期时间/防盗链

Nginx访问日志主要记录部署在nginx上的网站访问数据,日志格式定义在nginx主配置文件中。 nginx主配置文件:/etc/nginx/nginx.conf 查看nginx主配置文件: ```markup [root@linux ~]# cat /e...

asnfuy
2分钟前
0
0
JS_高程4.变量,作用域和内存问题(2)执行环境及作用域

本文转载于:专业的前端网站➨JS_高程4.变量,作用域和内存问题(2)执行环境及作用域 1.执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为,       每个执...

前端老手
6分钟前
2
0
手机迅雷下载的文件,电脑上找不到问题

不知道手机迅雷怎么做到的,手机迅雷下载的文件,手机上可以看的到 但连电脑后, 电脑上看不到文件 . 尝试了打开查看隐藏文件, 但没有效果 . 手机上查询文件权限 也是对的 . 可读,可写, 不隐藏 ...

ol_O_O_lo
8分钟前
2
0
python学习11:Python tuple元组详解

元组是 Python 中另一个重要的序列结构,和列表类似,也是由一系列按特定顺序排序的元素组成。和列表不同的是,列表可以任意操作元素,是可变序列;而元组是不可变序列,即元组中的元素不可以...

太空堡垒185
20分钟前
3
0
Java实现数据结构之线性结构

一、顺序表 顺序表本质是使用数组储存数组的一种数据结构,在计算机的储存中是连续的分配内存的。 下面是我自己使用java实现的简单顺序表结构 package list; public class MyArrayList<E> { ...

daxiongdi
22分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部