⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udpclient.skel

📁 一个很好的unix网络编程框架
💻 SKEL
字号:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <stdarg.h>#include <string.h>#include <errno.h>#include <netdb.h>#include <fcntl.h>#include <sys/time.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "skel.h"char *program_name;/* error - print a diagnostic and optionally exit */void error( int status, int err, char *fmt, ... ){	va_list ap;	va_start( ap, fmt );	fprintf( stderr, "%s: ", program_name );	vfprintf( stderr, fmt, ap );	va_end( ap );	if ( err )		fprintf( stderr, ": %s (%d)\n", strerror( err ), err );	if ( status )		EXIT( status );}/* set_address - fill in a sockaddr_in structure */static 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 )				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 )			error( 1, 0, "unknown service: %s\n", sname );		sap->sin_port = sp->s_port;	}}/* client - place holder for server */static void client( SOCKET s, struct sockaddr_in *peerp ){}/* main - UDP client setup */int main( int argc, char **argv ){	struct sockaddr_in peer;	SOCKET s;	INIT();	set_address( argv[ 1 ], argv[ 2 ], &peer, "udp" );	s = socket( AF_INET, SOCK_DGRAM, 0 );	if ( !isvalidsock( s ) )		error( 1, errno, "socket call failed" );	client( s, &peer );	exit( 0 );}

⌨️ 快捷键说明

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