Linux技术:TCP Socket之linux实现

TCP Server端:
#include
#include
#include
#include
#include
#include
#define; SRVPORT;;;10005
#define; CONNECT_NUM; 5
#define; MAX_NUM;;;80
using namespace std;
int main( int argc, char* argv[] )
{
int aSock = -1, srcSock = -1;
int nSrvAddr = -1,; cnt = -1;
sockaddr_in; sa, serverSockAddr;
sockaddr srvSockAddr;
memset( &srvSockAddr, 0, sizeof(srvSockAddr) );
aSock = socket( AF_INET, SOCK_STREAM, 0 );
if( aSock < 0 )
{
cout<<"Create srcSock Error!"< return 0;
}
memset( &serverSockAddr, 0, sizeof(serverSockAddr) );
memset( &sa, 0, sizeof(sa) );
sa.sin_family = AF_INET;
sa.sin_port= htons((u_short)SRVPORT);
sa.sin_addr.s_addr = htonl( INADDR_ANY );
if( bind( aSock, (sockaddr*) &sa, sizeof(sa) ) < 0 )
{
cout<<"Bind Error!"< return 0;
}
if( listen(aSock, CONNECT_NUM) < 0 )
{
cout<<"Listen Error!"< return 0;
}
cout<<"Server has been opened:"< while( true )
{
cnt = -1;
nSrvAddr = sizeof( sockaddr_in );
srcSock = accept( aSock, (sockaddr*)&serverSockAddr, (socklen_t *) &nSrvAddr );
if( srcSock < 0 )
{
cout<<" Server accept Error@"< cout<<"srcSock is: " perror("server:");
return; 0;
}
char szRevMeg[ MAX_NUM ] = { 0 };
char szSdMeg[ MAX_NUM ] = { "Hello World!" };
cout<<"Begin to read: "< cnt = read( srcSock, szRevMeg, MAX_NUM );
if( cnt < 0 )
{
cout<<"Read Error!"< return 0; //Just to test
}
cout<<" cnt is: "< cout<<"Complete Read:"< cout if( cnt < 0 )
{
cout<<"Write Error!"< }
cout<<"Write Completed!"< close( srcSock );
cout< }
close( aSock );
return 0;
}
TCP Client 端:
#include
#include
#include
#include
#include
#include
#define; PORT;10005
#define; SRVIP"127.0.0.1" // "222.26.209.141"
#define; RCVNUM; 1024
using namespace std;
int main()
{
int clientSock, nRecvBytes = -1;
sockaddr_in; sa;
char Buffer[RCVNUM] = { 0 };
clientSock = socket( AF_INET, SOCK_STREAM, 0 );
if( clientSock < 0 )
{
cout<<"Client Socket create error!"< return 0;
}
memset( &sa, 0, sizeof(sa) );
sa.sin_family = AF_INET;
sa.sin_port= htons( PORT );
sa.sin_addr.s_addr = inet_addr( SRVIP );
if( connect( clientSock, (sockaddr*)&sa, sizeof(sockaddr) ) < 0 )
{
cout<<"Connect Error!"< return 0;
}
cout<<" Client has been opened:"< strcpy( Buffer, "Here client said:; hello" );
cout<<" Begin to write: "< write( clientSock, Buffer, strlen(Buffer) 1 );
cout<<" Write completed"< memset( Buffer, 0, sizeof(Buffer) );
if( nRecvBytes = read( clientSock,Buffer, RCVNUM ) < 0 )
{
cout<<"Read Message Error!"< return 0;
}
cout<<"Server says: "< close( clientSock );
cout<<"End of file"< return 0;
【Linux技术:TCP Socket之linux实现】}

    推荐阅读