winet.c

来自「http协议的服务器例程」· C语言 代码 · 共 53 行

C
53
字号
#include "winet.h"int winetclient(char type, char ip[], int port){	int sd;	struct sockaddr_in addr;	if((sd = socket(AF_INET, type & W_UDP ? SOCK_DGRAM : SOCK_STREAM, 0)) < 0)	{		return -1;	}	bzero(&addr, sizeof(struct sockaddr_in));	addr.sin_family = AF_INET;	addr.sin_port = htons(port);	if(inet_pton(AF_INET, ip, &addr.sin_addr) <= 0)	{		return -1;	}	if(!(type & W_UDP))	{		if(connect(sd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) < 0)		{			return -1;		}	}	return sd;}int winetserver(char type, int port){	int sd;	struct sockaddr_in ssd;	if((sd = socket(AF_INET, type & W_UDP ? SOCK_DGRAM : SOCK_STREAM, 0)) < 0)	{		return -1;	}	bzero(&ssd, sizeof(struct sockaddr_in));	ssd.sin_family = AF_INET;	ssd.sin_port = htons(port);	ssd.sin_addr.s_addr=htonl(INADDR_ANY);	if(bind(sd, (struct sockaddr *)&ssd, sizeof(struct sockaddr_in)) < 0)	{		return -1;	}	if(!(type & W_UDP))	{		if(listen(sd, 5) < 0)		{			return -1;		}	}	return sd;}

⌨️ 快捷键说明

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