connect.h

来自「这是一个模拟银行ATM提款机系统」· C头文件 代码 · 共 58 行

H
58
字号
/* 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 + =
减小字号Ctrl + -
显示快捷键?