saccept.c

来自「Porting the Simple Sockets Library Dr. C」· C语言 代码 · 共 63 行

C
63
字号
/* Just put in another line *//* Saccept.c: this file contains the Socket accept support */#include <stdio.h>#include <errno.h>#include "sockets.h"/* ------------------------------------------------------------------------- *//* Saccept: this routine uses a server Socket to accept connections *  The accept() function clones a socket for use with a client connect. *  One may close the Saccept generated socket without affecting the *  server socket. */#ifdef __PROTOTYPE__Socket *Saccept(Socket *skt)#elseSocket *Saccept(skt)Socket *skt;#endif{int             addrlen;#ifndef SSLNOSETSOCKOPTint             status=1;#endifstruct sockaddr addr;Socket         *acceptskt= NULL;/* sanity check */if(!skt) {	return acceptskt;	}/* allocate a Socket */acceptskt= makeSocket(skt->hostname,skt->sktname,PM_ACCEPT);if(!acceptskt) {	return acceptskt;	}/* accept a connection */addrlen       = sizeof (addr);acceptskt->skt= accept(skt->skt, &addr, &addrlen);if(acceptskt->skt <= 0) {	/* failure to accept */	freeSocket(acceptskt);	return (Socket *) NULL;	}/* turn off TCP's buffering algorithm so small packets don't get delayed */#ifndef SSLNOSETSOCKOPTif(setsockopt(skt->skt,IPPROTO_TCP,TCP_NODELAY,(char *) &status,sizeof(status)) < 0) {	}#endif	/* #ifndef SSLNOSETSOCKOPT ... */return acceptskt;}/* --------------------------------------------------------------------- */

⌨️ 快捷键说明

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