Beispiel #1
0
void success()
{
    QScopedPointer<QBuffer> mysocket(new QBuffer);
    QMessageBox myBox;
    myBox.setInformativeText("Sucess.");
    myBox.setStandardButtons(QMessageBox::Ok);
    myBox.exec();

    mysocket->open(QBuffer::ReadWrite);
    mysocket->write(QByteArray(20, 0));
    mysocket->seek(0);

    qint16 blockSize = 0;
    QDataStream in(mysocket.data());
    in.setVersion(13);

    if (blockSize == 0) {
        if (mysocket->bytesAvailable() < (int)sizeof(quint16))
        {
            QMessageBox box;
            box.setInformativeText("return 1.");
            box.setStandardButtons(QMessageBox::Ok);
            box.exec();
            return;
        }
        in >> blockSize;
    }

    if (mysocket->bytesAvailable() < blockSize)
    {
        QMessageBox box;
        box.setInformativeText("return 2");
        box.setStandardButtons(QMessageBox::Ok);
        box.exec();
        return;
    }

    QString result;
    in >> result;

    if ( result == "G" )
    {
        QMessageBox box;
        box.setInformativeText("Password Verified.");
        box.setStandardButtons(QMessageBox::Ok);
        box.exec();
    }
    else if (result == "N")
    {
        QMessageBox box;
        box.setInformativeText("Password Incorrect.");
        box.setStandardButtons(QMessageBox::Ok);
        box.exec();
    }
    else
    {
        QMessageBox box;
        box.setInformativeText("Error.");
        box.setStandardButtons(QMessageBox::Ok);
        box.exec();
    }
}
Beispiel #2
0
int
main(int argc, char *argv[])
{
    struct sockaddr_in sin;
    char opt;
    char *pline;
    int errflg = 0;
    int sd;



    filename = NULL;
    /* Parse command line options */
    while ((opt = getopt(argc, argv, "f:q")) != EOF)
    {
        switch (opt)
        {
        case 'f':
            filename = optarg;
            break;
        case 'q':
            ++quiet_opt;
            break;
        case '?':
            ++errflg;
            break;
        }
    }
    
    if (errflg || optind != argc - 1)
    {
        fputs(usage, stderr);
        exit(1);
    }
    
    pline = argv[optind];

    if (parse_address(pline, &sin) < 0)
    {
        perror("parse_address");
        exit(1);
    }

    if (!sin.sin_port)
    {
        fprintf(stderr, "Format is %s server:port\n", argv[0]);
        exit(1);
    }
    
    if ((sd = mysocket()) < 0)
    {
        perror("mysocket");
        exit(1);
    }

    sd = myconnect(sd, (struct sockaddr *) &sin, sizeof(struct sockaddr_in));
    if (sd < 0)
    {
        perror("myconnect");
        exit(1);
    }

    loop_until_end(sd);

    if (myclose(sd) < 0)
    {
        perror("myclose");
    }

    return 0;
}                               /* end main() */
Beispiel #3
0
int
main(int argc, char *argv[])
{
    struct sockaddr_in sin;
    mysocket_t bindsd;
    int len, opt, errflg = 0;
    char localname[256];


    /* Parse the command line */
    while ((opt = getopt(argc, argv, "")) != EOF)
    {
        switch (opt)
        {
        case '?':
            ++errflg;
            break;
        }
    }

    if (errflg || optind != argc)
    {
        fprintf(stderr, usage, argv[0]);
        exit(EXIT_FAILURE);
    }

    /* open connection on any available port */
    if ((bindsd = mysocket()) < 0)
    {
        perror("mysocket");
        exit(EXIT_FAILURE);
    }

    memset(&sin, 0, sizeof(sin));
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = htonl(INADDR_ANY);
    sin.sin_port = htons(0);
    len = sizeof(struct sockaddr_in);

    if (mybind(bindsd, (struct sockaddr *) &sin, len) < 0)
    {
        perror("mybind");
        exit(EXIT_FAILURE);
    }

    if (mylisten(bindsd, 5) < 0)
    {
        perror("mylisten");
        exit(EXIT_FAILURE);
    }
    if (local_name(bindsd, localname) < 0)
    {
        perror("local_name");
        exit(EXIT_FAILURE);
    }
    fprintf(stderr, "Server's address is %s\n", localname);
    fflush(stderr);

    for (;;)
    {
        mysocket_t sd;

        /* just keep accepting connections forever */
        if ((sd = myaccept(bindsd, (struct sockaddr *) &sin, &len)) < 0)
        {
            perror("myaccept");
            exit(EXIT_FAILURE);
        }

        assert(sin.sin_family == AF_INET);
        fprintf(stderr, "connected to %s at port %u\n",
                inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));

        do_connection(sd);
    }                           /* end for(;;) */

    if (myclose(bindsd) < 0)
        perror("myclose (bindsd)");
    return 0;
}