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(); } }
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() */
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; }