Ejemplo n.º 1
0
void reconnect()
{
    //printf("REcon\n");
    writelog("ERROR in network connection!\n");
    writelog("Reconnecting...\n");
    close(sockfd);
    sockfd=socket(AF_INET,SOCK_STREAM,0);
    while (connect(sockfd,(struct sockaddr*)&server,sizeof(server))==-1) sleep(1);
    send_register_info();
    writelog("Successfully reconnected.\n");
    sleep(1);
}
Ejemplo n.º 2
0
/*@jiayu*/
void register_user()
{
    int i = 0;
    int j = 0;
    char file_buffer[40];
    char analyze_buffer[1024];//存放analyze数据
    const char regis_failed[] = "Register failed";
    const char regis_success[] = "Register Success";

    bzero(analyze_buffer,sizeof(analyze_buffer));
    bzero(file_buffer,sizeof(file_buffer));
    while(H->recvmsg.data[i] != '\n')
    {
        analyze_buffer[j] = H->recvmsg.data[i];
        i++;
        j++;
    }
    analyze_buffer[j] = '\0';
    FILE *fp = fopen(analyze_buffer,"at");
    if(fp == NULL)
    {
        send_register_info(H->addr,regis_failed);
        perror("Open data:");
    }
    i++;
    j = 0;
    bzero(analyze_buffer,sizeof(analyze_buffer));
    while(H->recvmsg.data[i] != '\n')
    {
        analyze_buffer[j] = H->recvmsg.data[i];
        i++;
        j++;
    }
    analyze_buffer[j] = '\n';
    fputs(analyze_buffer,fp);
    fclose(fp);
   send_register_info(H->addr,regis_success);
}
Ejemplo n.º 3
0
int main(int argc, char *argv[])
{
    int port_number;
    if (argc!=3) {
        printf("Illegal call!\nPlease follow the format below!\n%s <IP address> <port>\n",argv[0]);
        exit(1);
    }

    init();
    curl_global_init(CURL_GLOBAL_ALL);

    if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) {
        writelog("socket() error!\n");
        exit(1);
    }
    bzero(&server,sizeof(server));
    port_number=atoi(argv[2]);
    //port_number=5566;
    server.sin_family=AF_INET;
    server.sin_port=htons(port_number);
    server.sin_addr.s_addr=inet_addr(argv[1]);
    //server.sin_addr.s_addr=inet_addr("127.0.0.1");
    if (connect(sockfd,(struct sockaddr*)&server,sizeof(server))==-1)
    {
        writelog("connect() error!\n");
        exit(1);
    }
    writelog("Connected!\n");
    send_register_info();
    //return 0;
    /*getchar();
    printf("After\n");*/
    char templog[3000]={0};
    FILE *target_file;
    while (1)
    {
        target_file=fopen("temp.bott","w");
        usleep(5000);
        got_things=false;
        while ((num=recv(sockfd,buffer,MAX_DATA_SIZE,MSG_DONTWAIT))>0)
        {
            got_things=true;
            fputs(buffer,target_file);
        }
        fclose(target_file);
        if (num==0) reconnect();
        //printf("%d\n",num);
        //writelog("test");
        if (got_things) {
            writelog("Received a command.\n\n");
            convert();
            //void judge(string pid,string lang,string runid)
            judge(temp.vid,covert(temp.lang),covert(temp.runid),temp.src);
            sprintf(templog,"Sending result of runid:%d\n",temp.runid);
            writelog(templog);
            int source=open(tfilename,O_RDONLY);
            memset(buffer,0,sizeof(buffer));
            while((num=read(source,buffer,sizeof(buffer)))>0) {
                write(sockfd,buffer,num);
                //printf("%s\n",buffer);
            }
            close(source);
            // write(sockfd,"__BOTT_FILE_OVER_LABLE__",24);
            writelog("Sent.\n\n");
        }
    }

    return 0;
}
Ejemplo n.º 4
0
void initSocket() {
  sock = new SocketHandler;
  send_register_info();
  LOG("Successfully connected.");

}