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

📄 udp_svr.c

📁 一个基于linux的TCP/IP协议栈的实现
💻 C
字号:
#include <sys/socket.h>#include <linux/types.h>#include <linux/errqueue.h>#include <sys/ioctl.h>#include "my_inet.h"#include <stdio.h>#include <errno.h>#include <string.h>#include <arpa/inet.h>#include <unistd.h>int main(){	int i;	struct sockaddr_in sa;	struct sockaddr_in r_sa;	sa.sin_family = PF_INET;	sa.sin_port = htons(16000);	inet_aton("172.16.48.2", &sa.sin_addr);	int fd = socket( MY_PF_INET, SOCK_DGRAM, MY_IPPROTO_UDP );	if( fd < 0 ){		perror("socket: ");		return -1;	}		if( bind( fd, (struct sockaddr *)&sa, sizeof(sa) ) == -1 )		perror("bind: ");		//int bwrite = send( fd, "abcdefg", 7, 0 );	//if( bwrite == -1 ){	//	perror("send: ");	//	return -1;	//}		printf("wait for msg!\n");	char buf[1024];	int len = sizeof(r_sa);	int bread = recvfrom( fd, buf, 1024, 0, (struct sockaddr *)&r_sa, (socklen_t*)&len );	if( bread == -1 ){		perror("recv: ");		return -1;	}	printf("%s\n", buf);	printf("%s, %u\n", inet_ntoa( r_sa.sin_addr ), ntohs(r_sa.sin_port) );	if( sendto( fd, buf, strlen(buf), 0, (struct sockaddr *)&r_sa, len ) == -1 )		perror("sendto: ");	do{		sleep(1);	}while(1);	close( fd );	return 0;}

⌨️ 快捷键说明

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