h_sendto_srv.c

来自「T-kernel Tcp/ip Protocol Stack Sample」· C语言 代码 · 共 91 行

C
91
字号
/* *  Copyright (C) 1999-2006 MITSUBISHI ELECTRIC CORPORATION and *  RENESAS SOLUTIONS CORPORATION and *  RENESAS TECHNOLOGY CORPORATION *  All rights reserved. * *  TCP/IP Test Application program [API]. */#include <stdio.h>#include <signal.h>#include <ctype.h>#include <errno.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/tcp.h>#include <netdb.h>#include "config.h"extern int errno;int sd;void sig_hdr(){	/* printf("received SIGINT.\n"); */	if (close(sd) < 0) {		printf("close is NG.\n");		exit(1);	}	printf("close is OK.\n");	exit(0);}/* * UDP server program */main(argc, argv)int	argc;char **argv;{	int i, len;	struct sockaddr_in sinme, sindst;	int tcpopt;	char buf[2048];	int addrlen;	signal(SIGINT, sig_hdr);printf("for TEST-7\n");	errno = 0;	/* create an endpoint for UDP communication */	if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {		printf("socket is NG.(errno=%d)\n", errno);		exit(1);	}	printf("socket is OK.\n");		memset((char *)&sinme, 0, sizeof(struct sockaddr_in));	sinme.sin_family = AF_INET;	sinme.sin_addr.s_addr = inet_addr(SUN_ADDR);	sinme.sin_port = htons(SUN_PORT);	if (bind(sd, (struct sockaddr *)&sinme, sizeof(sinme)) < 0) {		printf("bind is NG.(errno=%d)\n", errno);		close(sd);		exit(1);	}	printf("bind is OK.\n");	addrlen = sizeof(sindst);	while ((len = recvfrom(sd, buf, sizeof(buf), 0, 		(struct sockaddr *)&sindst, &addrlen)) > 0) {			printf("recvfrom is OK.(size=%d)\n", len);	}	if (len < 0) {		printf("recvfrom is NG.(errno=%d)\n", errno);	}	if (close(sd) < 0) {		printf("close is NG.(errno=%d)\n", errno);	}	printf("close is OK.\n\n");	sleep(2);	exit(0);}/* EOF */

⌨️ 快捷键说明

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