c++ client example

原创
2014/05/04 00:11
阅读数 54
//============================================================================
// 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;
}


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部