client.c

来自「在linux环境下」· C语言 代码 · 共 78 行

C
78
字号

#include "a.h"

int main(int argc, char* argv[])
{
	struct sockaddr_in client_addr;
	int addr_len = sizeof(struct sockaddr_in);
	int sockfd;
	int numbytes = 0,len = 0; 
	#ifdef LINUX
	long int buf[MAXBUFLEN];
	#else
	DWORD buf[MAXBUFLEN];
	init_socket(2,2);
	#endif

	if (argc != 2)
	{
		printf("Please input desired IP!");
	}

	#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(&client_addr, 0, sizeof(client_addr));
	client_addr.sin_family = AF_INET;
	client_addr.sin_port = htons(SEVERPORT);
	client_addr.sin_addr.s_addr = inet_addr(argv[1]);
	printf("argv[1]=%s\n", argv[1]);
	memset(&(client_addr.sin_zero), 0, sizeof(client_addr.sin_zero));

	#ifdef TCP
	connect_sever(sockfd, &client_addr, addr_len);
	#endif

	while (1)
	{
		printf("begin\n");
		get_time(&numbytes, buf);

		#ifdef TCP
		len = send(sockfd, buf, numbytes, 0);
		#else
		len = sendto(sockfd, buf, numbytes, 0, (struct sockaddr*)&client_addr, addr_len);
		#endif
		printf("lenofsend=%d\n", len);
		if (len == -1)
		{
			perror("sent");
			continue;
		}

		#ifdef TCP
		len = recv(sockfd, buf, MAXBUFLEN, 0);
		#else
		len = recvfrom(sockfd, buf, MAXBUFLEN, 0, (struct sockaddr*)&client_addr, &addr_len);
		#endif
		printf("lenofrecv=%d\n", len);
		if (len == -1)
		{
			perror("recv");
			continue;
		}
		
		get_rtt(buf);
		
	} 	
	close_socket(sockfd);

	return 0;
}

⌨️ 快捷键说明

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