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

📄 def_function.c

📁 在linux环境下
💻 C
字号:

#include "a.h"


int creat_socket(int domain, int type, int protocol)
{
	int sockfd;

	sockfd = socket(domain, type, protocol);
	if (sockfd < 0)
	{
		perror("socket");
		exit(-1);
	}
	return sockfd;
}

#ifndef LINUX
int init_socket(BYTE blow, BYTE high)
{
//	WORD wVersionRequested;
	WSADATA wsaData;


	if (WSAStartup(MAKEWORD(blow, high), &wsaData) != 0)
	{
		perror("WSAStartup failed!");
		exit(-1);	
	}

	if ((LOBYTE(wsaData.wVersion) != blow) || (HIBYTE(wsaData.wVersion) != high))
	{
		WSACleanup();
		exit(-1);
	}
	return 0;
}
#endif

int bind_socket(int sockfd, struct sockaddr_in * addr, size_t addr_len)
{
	if (bind(sockfd, (struct sockaddr *)addr, addr_len) < 0)
	{
		perror("bind");
		exit(-1);
	}

	return 0;
}


int listen_connect(int sockfd)
{
	if (listen(sockfd, BACKLOG) < 0)
	{
		perror("listen");
		exit(-1);
	}

	return 0;
}


int accept_connect(int sockfd, struct sockaddr_in * client_addr, size_t * addr_len)
{
	int new_fd;

	new_fd = accept(sockfd, (struct sockaddr*)client_addr, addr_len);
	if (new_fd < 0)
	{
		perror("accept");
		exit(-1);
	}

	return new_fd;
}


int connect_sever(int sockfd, struct sockaddr_in * addr, size_t addr_len)
{
	if ((connect(sockfd, addr, addr_len)) < 0)
	{
		perror("connect");
		exit(-1);
	}

	return 0;
}

#ifdef LINUX
int get_time(int * numbytes, long int * buf)
#else
int get_time(int *numbytes, DWORD * buf)
#endif
{
	#ifdef LINUX
	struct timeval st_time;
	struct timezone st_zone;

	if ((gettimeofday(&st_time, &st_zone)) < 0)
	{
		perror("gettimeofday");
		exit(-1);
	} 

	buf[0] = st_time.tv_sec; 
	buf[1] = st_time.tv_usec; 
//	printf("buf[0]=%ld\n", buf[0]);
//	printf("buf[1]=%ld\n", buf[1]);
	*numbytes = 8;
	#else
	DWORD st_time;

	st_time = timeGetTime();
	buf[0] = st_time;
	printf("st_time=%ld\n", buf[0]);
	*numbytes = 4;
	#endif

	return 0;
}


#ifdef LINUX
int get_rtt(long int * buf)
#else
int get_rtt(DWORD * buf)
#endif
{
	double RTT;
	#ifdef LINUX
	struct timeval rf_time;
	struct timezone rf_zone;

	if ((gettimeofday(&rf_time, &rf_zone)) < 0)
	{
		perror("gettimeofday");
		exit(-1);
	}  
	RTT = rf_time.tv_sec - buf[0] +(rf_time.tv_usec - buf[1]) * 0.000001;
	#else
	DWORD rf_time;

	rf_time = timeGetTime();
	RTT = (rf_time - buf[0]) * 0.001;
	#endif
	printf("RTT is %f\n",RTT);

	return 0;

}


int close_socket(int sockfd)
{
	#ifdef LINUX
	close(sockfd);
	#else
	closesocket(sockfd);
	#endif

	return 0;	
}


⌨️ 快捷键说明

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