virtual bool bind( ::osiris::String const & bindIP=(osiris::String::EMPTY), ::osiris::uint32 port=0 ) { ::osiris::PythonState __pystate(getPythonThreadState()); if( ::osiris::PythonOverride func_bind = this->get_override( "bind" ) ) return func_bind( boost::ref(bindIP), port ); else{ __pystate.leave(); return this->::osiris::IServer::bind( boost::ref(bindIP), port ); } }
int func_timeout_reconnect(char *serverip,char *serverport,char *clientip,char *clientport){ int connectTime = 1000; int result=-1; while(result<0 && connectTime>0) { --connectTime; // create socket clientfd = socket(AF_INET,SOCK_STREAM,0); if(clientfd<0) { fprintf(fp,"socket() failed\n"); close(clientfd); continue; } // bind if(func_bind(clientfd,clientip,clientport)<0) { fprintf(fp,"bind() failed\n"); close(clientfd); continue; } result = func_connect(clientfd,serverip,serverport); if(result<0) { fprintf(fp,"connect() failed\n"); close(clientfd); } } if(connectTime<=0&&result==-1) { fprintf(fp,"final!!!connect() failed\n"); fprintf(fp,"connet error ,and game over"); fclose(fp); return -1; }else { fprintf(fp,"final!!!connect() successed\n"); return 0; } }