int main(int argc,char **argv){ kn_net_open(); kn_proactor_t p = kn_new_proactor(); kn_sockaddr local; kn_fd_t l; kn_addr_init_in(&local,argv[1],atoi(argv[2])); l = kn_dgram_listen(p,SOCK_DGRAM,&local,transfer_finish); struct dgram_session *session = calloc(1,sizeof(*session)); session->s = l; kn_fd_setud(l,session); dgram_session_recv(session); uint64_t tick,now; tick = now = kn_systemms64(); while(1){ kn_proactor_run(p,50); now = kn_systemms64(); if(now - tick > 1000) { uint32_t elapse = (uint32_t)(now-tick); totalbytes = (totalbytes/elapse)/1024; printf("totalbytes:%lldMB/s\n",totalbytes); tick = now; totalbytes = 0; } } return 0; }
void *routine2(void *arg) { printf("routine2\n"); kn_proactor_t p = kn_new_proactor(); kn_channel_bind(p,channel2,on_msg2,NULL); while(1){ kn_proactor_run(p,50); } return NULL; }
int main(int argc,char **argv){ signal(SIGPIPE,SIG_IGN); if(loadconfig() != 0){ return 0; } signal(SIGINT,sig_int); t_proactor = kn_new_proactor(); if(!init()) return 0; while(!stop) kn_proactor_run(t_proactor,50); return 0; }
int main(int argc,char **argv){ kn_net_open(); kn_proactor_t p = kn_new_proactor(); kn_sockaddr remote; kn_addr_init_un(&remote,argv[1]); int client_count = atoi(argv[2]); int i = 0; send_size = atoi(argv[3]); for(; i < client_count; ++i){ kn_asyn_connect(p,0,SOCK_STREAM,NULL,&remote,on_connect,(void*)p,30000); } while(1){ kn_proactor_run(p,50); } return 0; }
int main(int argc,char **argv){ kn_net_open(); kn_proactor_t p = kn_new_proactor(); kn_sockaddr local; kn_addr_init_in(&local,argv[1],atoi(argv[2])); kn_listen(p,&local,on_accept,(void*)p); uint64_t tick,now; tick = now = kn_systemms64(); while(1){ kn_proactor_run(p,50); now = kn_systemms64(); if(now - tick > 1000) { uint32_t elapse = (uint32_t)(now-tick); totalbytes = (totalbytes/elapse)/1024; printf("client_count:%d,totalbytes:%lldMB/s\n",client_count,totalbytes); tick = now; totalbytes = 0; } } return 0; }
int main(int argc,char **argv) { kn_net_open(); kn_proactor_t p = kn_new_proactor(); kn_sockaddr local; kn_addr_init_in(&local,argv[1],atoi(argv[2])); kn_stream_server_t s = kn_new_stream_server(p,&local,new_client); uint64_t tick,now; tick = now = kn_systemms64(); while(1){ kn_proactor_run(p,50); now = kn_systemms64(); if(now - tick > 1000) { uint32_t elapse = (uint32_t)(now-tick); recvcount = recvcount*1000/elapse; printf("client_count:%d,recvcount:%d/s,buffer_count:%u\n",client_count,recvcount,buffer_count); tick = now; recvcount = 0; } } return 0; }
void *routine1(void *arg) { printf("routine1\n"); kn_proactor_t p = kn_new_proactor(); kn_channel_bind(p,channel1,on_msg1,NULL); int i = 0; for(; i < 10000; ++i){ kn_channel_putmsg(channel2,NULL,malloc(1)); } uint64_t tick,now; tick = now = kn_systemms64(); while(1){ kn_proactor_run(p,50); now = kn_systemms64(); if(now - tick > 1000) { uint32_t elapse = (uint32_t)(now-tick); printf("count:%d\n",count/elapse*1000); tick = now; count = 0; } } return NULL; }