C++面向物件網路程式設計之SockServer
阿新 • 來源:網路 • 發佈:2021-06-01
/************************************************************************/
//Copyright2015,han_gangbiao.Allrightsreserved.
//
//[Time]:2015-6-2722:19:12
//[Author]:han_gangbiao
//[Info]:TCP-ServerDemo
/************************************************************************/
#include"stdafx.h"
#include"xsmart.h"
#include"xnet/SockAcceptor.h"
#include"xbase/xlogger.h"
#include"xbase/xthread.h"
#include<iostream>
intmain(intargc,char*argv[])
{
smart::XSmartLib::init();
XLOG_SET_STDERR(true);
std::cout<<smart::XSmartLib::getLibInfo()<<std::endl;
XNetAddrnet_addr_listen("0.0.0.0",8800);
XSockAcceptoracceptor;
if(acceptor.open(net_addr_listen,false,1)<0)
{
XLOG_INFO("XSockAcceptoropenfailed.");
}
while(1){
XSockStreampeer;
XNetAddrpeer_addr;
if(acceptor.accept(peer,&peer_addr)<0)
{
printf("accepterror!\n");
SLEEP_MS(3000);
continue;
}
XLOG_INFO("connectionfrompeer[%s]",peer_addr.get_ipstr());
charbuffer[4096]={0};
intbytes_received;
while((bytes_received=peer.recv(buffer,sizeof(buffer)))>0)
{
buffer[bytes_received]='\0';
XLOG_INFO("recvdata:%s",buffer);
peer.send(buffer,bytes_received);
}
peer.close();
XLOG_INFO("closethesocket!");
}
smart::XSmartLib::unInit();
return0;
}
轉載於:https://my.oschina.net/jackhen/blog/471562

