tcpserver.cpp

来自「socket编程方面的例子」· C++ 代码 · 共 49 行

CPP
49
字号
#include "sockheadWin.h"
#include "sockheadUnix.h"
#include "func.h"
char *program_name;
static void server(SOCKET s,struct sockaddr_in *peerp)
{
	printf("Server Message:....\n");
}
int main(int argc,char **argv)
{
	struct sockaddr_in local,peer;
	char *hname;
	char *sname;
	int peerlen;
	SOCKET s1;
	SOCKET s;
	const char* on="1";
	INIT();
	if(argc==2)
	{
		hname=NULL;
		sname=argv[1];
	}
	else 
	{
		hname=argv[1];
		sname=argv[2];
	}
	set_address(hname,sname,&local,"tcp");
	s=socket(AF_INET,SOCK_STREAM,0);
	if(!isvalidsock(s))
		error(1,errno,"socket call failed");
   /* if(!setsockopt(s,SOL_SOCKET,SO_REUSEADDR,on,sizeof(on)))
		error(1,errno,"setsockopt failed");*/
	if(bind(s,(struct sockaddr *)&local,sizeof(local)))
		error(1,errno," bind failed");
	if(listen(s,NLISTEN))
		error(1,errno," listen failed");
	do
	{
		peerlen=sizeof(peer);
		s1=accept(s,(struct sockaddr *)&peer,&peerlen);
		if(!isvalidsock(s1))
			error(1,errno,"accept failed");
		server(s1,&peer);
		CLOSE(s1);
	}while(1);
	EXIT(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?