?? passive.h
字號:
/*passive.h*/
#include "winsock.h"
#include "memory.h"
#include "stdio.h"
int passivesock(const unsigned port,const char *transport,int qlen)
{
/*
* port -integer type
* transport -"tcp" or "udp"
* qlen -maximum server request queue length
*/
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=INADDR_ANY;
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 (bind(s,(struct sockaddr*)&sin,sizeof(sin))<0)
{
printf("Can't bind to %d port",port);
exit(1);
}
if (type==SOCK_STREAM && listen(s,qlen)<0)
{
printf("Can't listen on %d port",port);
exit(1);
}
return s;
}
passiveTCP(const unsigned port,int qlen)
{
return passivesock(port,"tcp",qlen);
}
passiveUDP(const unsigned port)
{
return passivesock(port,"udp",0);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -