Rev 983 | Rev 985 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 983 | Rev 984 | ||
|---|---|---|---|
| Line 82... | Line 82... | ||
| 82 | { |
82 | { |
| 83 | AsyncSocket *newSocket = new AsyncSocket(); |
83 | AsyncSocket *newSocket = new AsyncSocket(); |
| 84 | 84 | ||
| 85 | if (mySocket.accept(newSocket)) |
85 | if (mySocket.accept(newSocket)) |
| 86 | { |
86 | { |
| 87 | newSocket-> |
87 | newSocket->sendData("Welcome to Atom " + ftos(VERSION) + " - CanDebug output\n"); |
| 88 | 88 | ||
| 89 | slog << "CanDebug accepted new client on socket " + itos(newSocket->getSocket()) + ".\n"; |
89 | slog << "CanDebug accepted new client on socket " + itos(newSocket->getSocket()) + ".\n"; |
| 90 | myClientSockets[newSocket->getSocket()] = newSocket; |
90 | myClientSockets[newSocket->getSocket()] = newSocket; |
| 91 | - | ||
| 92 | - | ||
| - | 91 | myClientSockets[newSocket->getSocket()]->start(); |
|
| 93 | } |
92 | } |
| 94 | } |
93 | } |
| 95 | } |
94 | } |
| 96 | catch (SocketException* e) |
95 | catch (SocketException* e) |
| 97 | { |
96 | { |
| 98 | slog << "Exception was caught:" + e->getDescription() + ".\n"; |
97 | slog << "Exception was caught:" + e->getDescription() + ".\n"; |
| 99 | } |
98 | } |
| 100 | } |
99 | } |
| 101 | 100 | ||
| 102 | void CanDebug::sendData(string data) |
101 | void CanDebug::sendData(string data) |
| 103 | { |
102 | { |
| 104 | SyslogStream &slog = SyslogStream::getInstance(); |
103 | SyslogStream &slog = SyslogStream::getInstance(); |
| 105 | 104 | ||
| 106 | map<int, AsyncSocket*>::iterator iter; |
105 | map<int, AsyncSocket*>::iterator iter; |
| 107 | 106 | ||
| 108 | for (iter = myClientSockets.begin(); iter != myClientSockets.end(); iter++) |
107 | for (iter = myClientSockets.begin(); iter != myClientSockets.end(); iter++) |
| 109 | { |
108 | { |
| 110 | if (iter->second->isConnected()) |
109 | if (iter->second->isConnected()) |
| 111 | { |
110 | { |
| 112 | //slog << "CanDebug sent data to client " + itos(iter->second->getSocket()) + ".\n"; |
111 | //slog << "CanDebug: sent data to client " + itos(iter->second->getSocket()) + ".\n"; |
| - | 112 | ||
| - | 113 | try |
|
| - | 114 | { |
|
| 113 | iter->second-> |
115 | iter->second->sendData(data); |
| - | 116 | } |
|
| - | 117 | catch (SocketException* e) |
|
| - | 118 | { |
|
| - | 119 | slog << "CanDebug caught an exception:" + e->getDescription() + ".\n"; |
|
| - | 120 | } |
|
| 114 | } |
121 | } |
| 115 | else |
122 | else |
| 116 | { |
123 | { |
| 117 | slog << "CanDebug client |
124 | slog << "CanDebug had a client disconnect.\n"; |
| 118 | delete iter->second; |
125 | delete iter->second; |
| 119 | myClientSockets.erase(iter); |
126 | myClientSockets.erase(iter); |
| 120 | } |
127 | } |
| 121 | } |
128 | } |
| 122 | } |
129 | } |