c++ client example
2332 ワード
//============================================================================
// 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
";
send(loginSocket, &send_content, sizeof(send_content), 0);
cout<<"send()"<<strerror(errno)<<endl;
int ifSocketClosed = closeSocket(loginSocket);
cout<<"closeSocket()"<<strerror(errno)<<endl;
return ifSocketClosed;
}