rev |
line source |
nuclear@1
|
1 #include <stdlib.h>
|
nuclear@1
|
2 #include <time.h>
|
nuclear@1
|
3 #include <vector>
|
nuclear@1
|
4 #include <QApplication>
|
nuclear@1
|
5 #include <QStatusBar>
|
nuclear@1
|
6 #include "main.h"
|
nuclear@0
|
7 #include "mainwin.h"
|
nuclear@1
|
8 #include "roll.h"
|
nuclear@1
|
9 #include "logger.h"
|
nuclear@1
|
10
|
nuclear@1
|
11 static void new_client();
|
nuclear@1
|
12 static void status_log(const char *msg, void *cls);
|
nuclear@1
|
13
|
nuclear@1
|
14 std::vector<Roll*> dice;
|
nuclear@1
|
15 QTcpServer *server;
|
nuclear@1
|
16 std::vector<QTcpSocket*> clients;
|
nuclear@1
|
17
|
nuclear@1
|
18 QTcpSocket *socket;
|
nuclear@1
|
19
|
nuclear@1
|
20 static std::string srv_passwd;
|
nuclear@3
|
21 static MainWindow *win_main;
|
nuclear@0
|
22
|
nuclear@0
|
23 int main(int argc, char *argv[])
|
nuclear@0
|
24 {
|
nuclear@1
|
25 srand(time(0));
|
nuclear@0
|
26
|
nuclear@1
|
27 QApplication app(argc, argv);
|
nuclear@3
|
28
|
nuclear@3
|
29 win_main = new MainWindow;
|
nuclear@3
|
30 win_main->show();
|
nuclear@1
|
31
|
nuclear@1
|
32 set_log_file(stdout);
|
nuclear@3
|
33 set_log_callback(status_log, win_main->statusBar());
|
nuclear@1
|
34
|
nuclear@1
|
35 return app.exec();
|
nuclear@0
|
36 }
|
nuclear@1
|
37
|
nuclear@1
|
38
|
nuclear@1
|
39 void start_server(int port, const char *passwd)
|
nuclear@1
|
40 {
|
nuclear@1
|
41 if(server) return;
|
nuclear@1
|
42
|
nuclear@1
|
43 log_message("starting server on port: %d\n", port);
|
nuclear@1
|
44
|
nuclear@1
|
45 server = new QTcpServer;
|
nuclear@1
|
46 server->listen(QHostAddress::Any, port);
|
nuclear@1
|
47 srv_passwd = passwd;
|
nuclear@1
|
48
|
nuclear@1
|
49 QObject::connect(server, &QTcpServer::newConnection, new_client);
|
nuclear@1
|
50 }
|
nuclear@1
|
51
|
nuclear@1
|
52
|
nuclear@1
|
53 static void new_client()
|
nuclear@1
|
54 {
|
nuclear@1
|
55 QTcpSocket *sock = server->nextPendingConnection();
|
nuclear@1
|
56 if(!sock) return;
|
nuclear@1
|
57
|
nuclear@1
|
58 QHostAddress client_addr = sock->peerAddress();
|
nuclear@1
|
59 clients.push_back(sock);
|
nuclear@1
|
60
|
nuclear@1
|
61 log_message("received connection request from: %s\n", client_addr.toString().toUtf8().data());
|
nuclear@1
|
62 }
|
nuclear@1
|
63
|
nuclear@3
|
64 void start_client(const char *host, int port, const char *passwd)
|
nuclear@1
|
65 {
|
nuclear@1
|
66 log_message("connecting to host: %s port: %d\n", host, port);
|
nuclear@1
|
67 }
|
nuclear@1
|
68
|
nuclear@1
|
69
|
nuclear@1
|
70 static void status_log(const char *msg, void *cls)
|
nuclear@1
|
71 {
|
nuclear@1
|
72 QStatusBar *sbar = (QStatusBar*)cls;
|
nuclear@1
|
73 sbar->showMessage(msg);
|
nuclear@1
|
74 }
|