📄 saccept.c
字号:
/* 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{#ifdef _AIXsize_t addrlen;#elseint addrlen;#endif#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;}/* --------------------------------------------------------------------- * vim: ts=4 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -