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

📄 connect.h

📁 模拟银行ATM提款机系统(单线程)
💻 H
字号:
/* connect.h*/

#include "winsock.h"
#include "memory.h"
#include "stdio.h"

int connectsock(const char *host,const unsigned port,const char *transport)
{
/*
 *    host       -dotted decimal IP address
 *    port       -integer type
 *    transport  -"tcp" or "udp"
*/
    struct sockaddr_in sin;
    struct protoent  *ppe;
    int s,type;

    memset(&sin,0,sizeof(sin));
    sin.sin_family=AF_INET;
	sin.sin_port=htons((u_short)port);
	sin.sin_addr.s_addr=inet_addr(host);

	if ((ppe=getprotobyname(transport))==0)
	{
		printf("Cann't get %s protocol entry",transport);
		exit(1);
	}

	if (strcmp(transport,"udp")==0)
		type=SOCK_DGRAM;
	else
		type=SOCK_STREAM;

	s=socket(PF_INET,type,ppe->p_proto);
	if (s<0) 
	{
		printf("Can't create socket");
		exit(1);
	}

	if (connect(s,(struct sockaddr*)&sin,sizeof(sin))<0)
	{
		printf("Can't connect to %s",host);
		exit(1);
	}
	return s;
}


connectTCP(const char *host,const unsigned port)
{
     return connectsock(host,port,"tcp");
}

connectUDP(const char *host,const unsigned port)
{
     return connectsock(host,port,"udp");
}

⌨️ 快捷键说明

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