Index: /trunk/BNC/bncmodel.cpp
===================================================================
--- /trunk/BNC/bncmodel.cpp	(revision 2177)
+++ /trunk/BNC/bncmodel.cpp	(revision 2178)
@@ -187,4 +187,21 @@
     writeNMEAstr(nmStr);
   }
+
+  int port = 7777;
+
+  if (port != 0) {
+    _server = new QTcpServer;
+    if ( !_server->listen(QHostAddress::Any, port) ) {
+      emit newMessage("bncModel: Cannot listen on sync port", true);
+    }
+    connect(_server, SIGNAL(newConnection()), this, SLOT(slotNewConnection()));
+    _sockets = new QList<QTcpSocket*>;
+  }
+  else {
+    _server  = 0;
+    _sockets = 0;
+  }
+
+
 }
 
@@ -194,4 +211,14 @@
   delete _nmeaStream;
   delete _nmeaFile;
+  delete _server;
+  delete _sockets;
+}
+
+// New Connection
+////////////////////////////////////////////////////////////////////////////
+void bncModel::slotNewConnection() {
+  _sockets->push_back( _server->nextPendingConnection() );
+  emit( newMessage(QString("PPP: new connection on port: # %1")
+                   .arg(_sockets->size()).toAscii(), true) );
 }
 
@@ -562,5 +589,5 @@
   // NMEA Output
   // -----------
-  if (_nmeaStream) {
+  if (_nmeaStream || _sockets) {
     double xyz[3]; 
     xyz[0] = x();
@@ -668,8 +695,4 @@
 void bncModel::writeNMEAstr(const QString& nmStr) {
 
-  if (!_nmeaStream) {
-    return;
-  }
-
   unsigned char XOR = 0;
   for (int ii = 0; ii < nmStr.length(); ii++) {
@@ -677,6 +700,22 @@
   }
   
-  *_nmeaStream << '$' << nmStr << '*' << hex << (int) XOR << endl;
-
-  _nmeaStream->flush();
-}
+  if (_nmeaStream) {
+    *_nmeaStream << '$' << nmStr << '*' << hex << (int) XOR << endl;
+    _nmeaStream->flush();
+  }
+
+  if (_sockets) {
+    QMutableListIterator<QTcpSocket*> is(*_sockets);
+    while (is.hasNext()) {
+      QTcpSocket* sock = is.next();
+      if (sock->state() == QAbstractSocket::ConnectedState) {
+//        *sock << '$' << nmStr << '*' << hex << (int) XOR << endl;
+//        sock->flush();
+      }
+      else if (sock->state() != QAbstractSocket::ConnectingState) {
+        delete sock;
+        is.remove();
+      }
+    }
+  }
+}
Index: /trunk/BNC/bncmodel.h
===================================================================
--- /trunk/BNC/bncmodel.h	(revision 2177)
+++ /trunk/BNC/bncmodel.h	(revision 2178)
@@ -27,4 +27,5 @@
 
 #include <QtCore>
+#include <QtNetwork>
 #include <newmat.h>
 
@@ -68,4 +69,7 @@
   void newMessage(QByteArray msg, bool showOnScreen);
 
+ private slots:
+  void slotNewConnection();
+
  private:
   double cmpValue(t_satData* satData);
@@ -89,4 +93,6 @@
   QFile*             _nmeaFile;
   QTextStream*       _nmeaStream;
+  QTcpServer*         _server;
+  QList<QTcpSocket*>* _sockets;
 };
 
