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@1
|
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@1
|
28 win_main.show();
|
nuclear@1
|
29
|
nuclear@1
|
30 set_log_file(stdout);
|
nuclear@1
|
31 set_log_callback(status_log, win_main.statusBar());
|
nuclear@1
|
32
|
nuclear@1
|
33 return app.exec();
|
nuclear@0
|
34 }
|
nuclear@1
|
35
|
nuclear@1
|
36
|
nuclear@1
|
37 void start_server(int port, const char *passwd)
|
nuclear@1
|
38 {
|
nuclear@1
|
39 if(server) return;
|
nuclear@1
|
40
|
nuclear@1
|
41 log_message("starting server on port: %d\n", port);
|
nuclear@1
|
42
|
nuclear@1
|
43 server = new QTcpServer;
|
nuclear@1
|
44 server->listen(QHostAddress::Any, port);
|
nuclear@1
|
45 srv_passwd = passwd;
|
nuclear@1
|
46
|
nuclear@1
|
47 QObject::connect(server, &QTcpServer::newConnection, new_client);
|
nuclear@1
|
48 }
|
nuclear@1
|
49
|
nuclear@1
|
50
|
nuclear@1
|
51 static void new_client()
|
nuclear@1
|
52 {
|
nuclear@1
|
53 QTcpSocket *sock = server->nextPendingConnection();
|
nuclear@1
|
54 if(!sock) return;
|
nuclear@1
|
55
|
nuclear@1
|
56 QHostAddress client_addr = sock->peerAddress();
|
nuclear@1
|
57 clients.push_back(sock);
|
nuclear@1
|
58
|
nuclear@1
|
59 log_message("received connection request from: %s\n", client_addr.toString().toUtf8().data());
|
nuclear@1
|
60 }
|
nuclear@1
|
61
|
nuclear@1
|
62 void connect(const char *host, int port, const char *passwd)
|
nuclear@1
|
63 {
|
nuclear@1
|
64 log_message("connecting to host: %s port: %d\n", host, port);
|
nuclear@1
|
65 }
|
nuclear@1
|
66
|
nuclear@1
|
67
|
nuclear@1
|
68 static void status_log(const char *msg, void *cls)
|
nuclear@1
|
69 {
|
nuclear@1
|
70 QStatusBar *sbar = (QStatusBar*)cls;
|
nuclear@1
|
71 sbar->showMessage(msg);
|
nuclear@1
|
72 }
|