Example #1
0
 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 );
     }
 }
Example #2
0
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;
    }
}