示例#1
0
int main(int argc,char **argv){
	signal(SIGPIPE,SIG_IGN);
	engine_t p = kn_new_engine();
	kn_sockaddr local;
	kn_addr_init_in(&local,argv[1],atoi(argv[2]));
	
	handle_t l = kn_new_sock(AF_INET,SOCK_STREAM,IPPROTO_TCP);
	kn_sock_listen(p,l,&local,on_accept,p);
	kn_reg_timer(p,1000,timer_callback,NULL);		
	kn_engine_run(p);
	return 0;
}
示例#2
0
static int luasocket_listen(lua_State *L){
	luasocket_t luasock = lua_touserdata(L,1);
	if(luasock->type == _SOCKET){
		if(!luaL_checkstring(L,2)){
			lua_pushstring(L,"invalid ip");
			return 1;
		}	
		if(!luaL_checkinteger(L,3)){
			lua_pushstring(L,"invalid port");
			return 1;		
		}	
		const char *ip = lua_tostring(L,2);
		int port = lua_tointeger(L,3);	
		kn_sockaddr local;
		kn_addr_init_in(&local,ip,port);
		int ret = listener_listen(luasock,&local);
		if(0 != ret){
			lua_pushstring(L,"listen error");
		}else{
			luasock->listening = 1;
			lua_pushnil(L);
		}
	}else if(luasock->type == _DATAGRAM){
		if(!luaL_checkstring(L,2)){
			lua_pushstring(L,"invalid ip");
			return 1;
		}	
		if(!luaL_checkinteger(L,3)){
			lua_pushstring(L,"invalid port");
			return 1;		
		}	
		const char *ip = lua_tostring(L,2);
		int port = lua_tointeger(L,3);	
		kn_sockaddr local;
		kn_addr_init_in(&local,ip,port);
		if(0 == kn_sock_listen(datagram_gethandle(luasock->datagram),&local)){
			lua_pushnil(L);
		}else{
			lua_pushstring(L,"listen error");
		}		
	}		
	return 1;		
}
示例#3
0
int main(int argc,char **argv){
	signal(SIGPIPE,SIG_IGN);	
	//create ioworker and logicprocessor
	logicprocessor_t logic = create_logic(on_new_connection,on_packet,on_disconnected);
	_worker = ioworker_new(logic);
	//run net worker thread
	ioworker_startrun(_worker);
	//run logic process thread
	logic_startrun(logic);

	//start listen
	engine_t p = kn_new_engine();
	kn_sockaddr local;
	kn_addr_init_in(&local,argv[1],atoi(argv[2]));
	
	handle_t l = kn_new_sock(AF_INET,SOCK_STREAM,IPPROTO_TCP);
	if(0 == kn_sock_listen(l,&local)){
		kn_engine_associate(p,l,on_accept);
		kn_engine_run(p);
	}
	return 0;
}