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

📄 sever.c

📁 在linux环境下
💻 C
字号:

#include "a.h"


int main()
{
	int sockfd;
	#ifdef TCP
	int new_fd;
	#endif
	struct sockaddr_in addr,client_addr;
	int addr_len = sizeof(struct sockaddr);
	int numbytes;
	#ifdef LINUX
	long int buf[MAXBUFLEN];
	#else
	DWORD buf[MAXBUFLEN];

	init_socket(2,2);
	#endif

	#ifdef TCP
    	sockfd = creat_socket(AF_INET, SOCK_STREAM, 0);
	printf("TCP\n");
	#else
	sockfd = creat_socket(AF_INET, SOCK_DGRAM, 0);
	printf("UDP\n");
	#endif

	memset(&addr,0,sizeof(addr));
	addr.sin_family = AF_INET;
	addr.sin_port = htons(SEVERPORT);
	#ifdef LINUX
	addr.sin_addr.s_addr = inet_addr("199.0.0.91");
	#else
	addr.sin_addr.s_addr = inet_addr("199.0.0.134");
	#endif	
	memset(addr.sin_zero,0,sizeof(addr.sin_zero));
	printf("sever ip=%s\n", inet_ntoa(addr.sin_addr));

	bind_socket(sockfd, &addr, addr_len);

	#ifdef TCP
	listen_connect(sockfd);
	new_fd = accept_connect(sockfd, &client_addr, &addr_len);
	#endif

	while (1)
	{
		printf("begin!\n");

		memset(buf, 0, MAXBUFLEN);
		#ifdef TCP
		numbytes = recv(new_fd, buf, MAXBUFLEN, 0);
		#else
		numbytes = recvfrom(sockfd, buf, MAXBUFLEN, 0, (struct sockaddr*)&client_addr, &addr_len);
		#endif
		printf("recvnum=%d\n",numbytes);
		if (numbytes == -1)
		{
			perror("recv");
			continue;
		}
		printf("receive from %s\n", inet_ntoa(client_addr.sin_addr));
		printf("packet is %d bytes\n", numbytes);
		#ifdef TCP
	        send(new_fd,buf, numbytes, 0);
		#else
		sendto(sockfd, buf, numbytes, 0, (struct sockaddr*)&client_addr, addr_len);
		#endif

	}

	close_socket(sockfd);
	#ifdef TCP
	close_socket(new_fd);
	#endif

	return 0;			

}

⌨️ 快捷键说明

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