set_address.c

来自「一个很好的unix网络编程框架」· C语言 代码 · 共 37 行

C
37
字号
#include "../etcp.h"/* set_address - fill in a sockaddr_in structure */void set_address( char *hname, char *sname,	struct sockaddr_in *sap, char *protocol ){	struct servent *sp;	struct hostent *hp;	char *endptr;	short port;	bzero( sap, sizeof( *sap ) );	sap->sin_family = AF_INET;	if ( hname != NULL )	{		if ( !inet_aton( hname, &sap->sin_addr ) )		{			hp = gethostbyname( hname );			if ( hp == NULL )				error( 1, 0, "unknown host: %s\n", hname );			sap->sin_addr = *( struct in_addr * )hp->h_addr;		}	}	else		sap->sin_addr.s_addr = htonl( INADDR_ANY );	port = strtol( sname, &endptr, 0 );	if ( *endptr == '\0' )		sap->sin_port = htons( port );	else	{		sp = getservbyname( sname, protocol );		if ( sp == NULL )			error( 1, 0, "unknown service: %s\n", sname );		sap->sin_port = sp->s_port;	}}

⌨️ 快捷键说明

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