文档章节

c++ client example

F
 FaintX
发布于 2014/05/04 00:11
字数 218
阅读 19
收藏 0
//============================================================================
// Name        : loginserver.cpp
// Author      : Faint
// Version     :
// Copyright   : TestVersion
//============================================================================
#include <errno.h>
#include <string.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/epoll.h>
#include <unistd.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <iostream>
using namespace std;

int createSocket()
{
	int newSocket;
	newSocket = socket( AF_INET, SOCK_STREAM, 0 );

	if ( newSocket == -1 )
		return -1;
	return newSocket;
}

int closeSocket( int sock )
{
	return close(sock);
}

int nonBlock( int fd )
{
	int flag;
	flag = fcntl( fd, F_GETFL, 0 );
	flag = flag | O_NONBLOCK;
	int result = fcntl( fd, F_SETFL, flag );
	return result;
}

int BindServerSocket( int fd, int port )
{
	struct sockaddr_in sa;
	sa.sin_family = AF_INET;
	sa.sin_port = htons( port );
	sa.sin_addr.s_addr = INADDR_ANY;

	int result = bind( fd, ( struct sockaddr* )&sa, sizeof( sa ));
	return result;
}

int ConnectServer( int fd, char* ip, int port )
{
	struct sockaddr_in server;
	server.sin_family = AF_INET;
	server.sin_port = htons( port );
	server.sin_addr.s_addr = inet_addr("127.0.0.1");
	int result = connect( fd, (struct sockaddr*)&server , sizeof( server) );
	cout<<strerror(errno);
	return result;
}

void handle( int fd )
{
	cout<<"hanlde"<<fd<<endl;
}

int main()
{
	cout << "!!!Begin Testing!!!" << endl; // prints !!!Hello World!!!

	int loginSocket = createSocket();
	cout<<"createSocket()"<<strerror(errno)<<endl;

	const char *ip= "127.0.0.1";
	int ifConnectServer = ConnectServer( loginSocket, (char*)&ip, 5768 );
	cout<<"ConnectServer()"<<strerror(errno)<<endl;

	cout<<"main loop"<<endl;

	string send_content = "1234q\n";

	send(loginSocket, &send_content, sizeof(send_content), 0);
	cout<<"send()"<<strerror(errno)<<endl;

	int ifSocketClosed = closeSocket(loginSocket);
	cout<<"closeSocket()"<<strerror(errno)<<endl;

	return ifSocketClosed;
}


© 著作权归作者所有

上一篇: go 回调函数
下一篇: c++ server example
F
粉丝 2
博文 10
码字总数 5378
作品 0
厦门
私信 提问
Apache Qpid Proton 0.12.0 发布

Apache Qpid Proton 0.12.0 发布,该版本包含新的 C++ 版本的 Proton API。详细的改进内容请看发行说明。 新特性和改进包括: PROTON-1037 - Add support for setting/getting message prop...

oschina
2016/02/17
894
0
一个小巧的rpc通信组件(C++和python)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/u012234115/article/details/90674652 C++的网络库一般都很重,这里基...

踏莎行hyx
06/08
0
0
C++ 连接Redis数据库_并运行一个简单的例子_Windows平台_VS2017

GitHub 上下载两个库:https://github.com/Cylix/cpp_redis与https://github.com/Cylix/tacopie/tree/8714fcec4ba9694fb00e83e788aadc099bd0fd5d (github上的cpp_redis) 都下载完后,把tacopie......

洛克人杰洛
2018/12/22
349
0
C++ Web Programming

What is CGI ? The Common Gateway Interface, or CGI, is a set of standards that define how information is exchanged between the web server and a custom script. The CGI specs are ......

岭南六少
2011/07/21
198
0
Android Camera 模块分析(四)

3.3 Camera本地库libui.so frameworks/base/libs/ui/中的Camera.cpp文件用于实现Camera.h提供的接口,其中一个重要的片段如下所示: const sp<ICameraService>& Camera::getCameraService()......

Jerikc
2012/08/31
398
0

没有更多内容

加载失败,请刷新页面

加载更多

用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
51分钟前
5
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
55分钟前
4
0
《Java实践指南》--读后

闲读《Java实践指南》... 1.lvy 某些项目中能够看到ivy.xml。早期使用ant的项目中,常常用ivy.xml来下载项目依赖。 2.ant 作为java程序员,应该都知道ant,虽然可能用过的人不多。为什么ant...

RippleChan
57分钟前
4
0
前端:固定表格(table)表头的实现方式

在写插件 bootstrap table 的时候,当数据过多的时候,需要对表格的 thead 进行固定,然后滚动表格的 tbody 。但是在实际的操作上,花了很多的时间在这个问题上,到现在也没有找到完美的解决...

前端老手
58分钟前
6
0
第五章 spring-connet之AnnotationConfigUtils

前言 AnnotatedBeanDefinitionReader是AnnctionConfig相关上下文与AnnotationConfigUtils的桥梁。还有一个作用是解析class成为BeanDefinitionHolder,注册到容器里面。AnnotationConfigUtils...

鸟菜啊
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部