Exemplo n.º 1
0
handle_t kn_new_sock(int domain,int type,int protocal){	
	int fd = socket(domain,type|SOCK_CLOEXEC,protocal);
	if(fd < 0) return NULL;
	handle_t h = NULL;
	if(type == SOCK_STREAM) 
		h = new_stream_socket(fd,domain);
	else if(type == SOCK_DGRAM){
		h = new_datagram_socket(fd,domain);
	}
	if(!h) close(fd);
	return h;
}
Exemplo n.º 2
0
int main(int argc,char **argv){
	signal(SIGPIPE,SIG_IGN);
	engine *e = engine_new();
	sockaddr_ server;
	if(0 != easy_sockaddr_ip4(&server,argv[1],atoi(argv[2]))){
		printf("invaild address:%s\n",argv[1]);
	}
	int32_t fd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
	easy_addr_reuse(fd,1);
	if(0 == easy_bind(fd,&server)){
		dgram_socket_ *udpserver = new_datagram_socket(fd); 
		engine_associate(e,udpserver,datagram_callback);
		datagram_socket_recv(udpserver,(iorequest*)new_request(),IO_POST,NULL);
		engine_regtimer(e,1000,timer_callback,NULL);
		engine_run(e);
	}
	return 0;
}