Exemplo n.º 1
0
int main(int argc,char **argv){
	signal(SIGPIPE,SIG_IGN);
	e = engine_new();
	sockaddr_ server;
	easy_sockaddr_ip4(&server,argv[1],atoi(argv[2]));
	uint32_t size = atoi(argv[3]);
	uint32_t i = 0;
	for( ; i < size; ++i){
		int32_t fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
		easy_noblock(fd,1);
		int32_t ret;
		if(0 == (ret = easy_connect(fd,&server,NULL)))
			on_connected(fd,0,e);
		else if(ret == -EINPROGRESS){
			connector *c = connector_new(fd,e,2000);
			engine_associate(e,c,on_connected);			
		}else{
			close(fd);
			printf("connect to %s %d error\n",argv[1],atoi(argv[2]));
		}
	}
	//engine_regtimer(e,1000,timer_callback,NULL);
	engine_run(e);
	return 0;
}
Exemplo n.º 2
0
static void on_connected(int32_t fd,int32_t err,void *ud) {
    if(fd >= 0 && err == 0) {
        engine *e = (engine*)ud;
        stream_socket_ *h = new_stream_socket(fd);
        engine_associate(e,h,transfer_finish);
        struct session *s = session_new(h);
        session_send(s,65535);
    } else if(err == ETIMEDOUT) {
        printf("connect timeout\n");
    }
}
Exemplo n.º 3
0
static void on_connected(int32_t fd,int32_t err,void *ud){
	if(fd >= 0 && err == 0){
		engine *e = (engine*)ud;
		connection *c = connection_new(fd,65535,rpacket_decoder_new(1024));
		engine_associate(e,(handle*)c,on_packet);
		timer *t = engine_regtimer(e,20,timer_callback,c);
		c->ud_ptr = t;
		//packet *p = (packet*)wpacket_new(64);
		//wpacket_write_uint64((wpacket*)p,(uint64_t)c);
		//wpacket_write_string((wpacket*)p,"hello world\n");
		//connection_send(c,p,NULL);		
	}else{
		printf("connect error\n");
	}
}
Exemplo n.º 4
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;
}