69,377
社区成员
发帖
与我相关
我的任务
分享
/* tcp_server - set up for a TCP server */
SOCKET tcp_server( char *hname, char *sname )
{
struct sockaddr_in local;
SOCKET s;
const int on = 1;
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,
( char * )&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" );
return s;
}
#include <netdb.h>
struct hosent* gethostent(void);
struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char **h_addr_list; /* list of addresses */
};