         if let socket = self.serverSocket {
             DLog("serviceDidPublish: USING EXISTING SERVERSOCKET \(socket)")
         } else {
-            self.serverSocket = GCDAsyncSocket.init(delegate: self, delegateQueue: socketQueue)
-            self.serverSocket?.isIPv4PreferredOverIPv6 = false
-            guard let serverSocket = self.serverSocket else {
-                DLog("ERROR - Could not create serverSocket")
-                return
-            }
-            
-            do {
-                try serverSocket.accept(onPort: serverPort)
-            } catch {
-                DLog("ERROR accepting on serverSocket")
+            if self.createServerSocket() == false {
                 return
             }
         }

        self.publisher = nil
        self.advertising = nil
        if leaveServerSocketAlone == false {
            if let socket = self.serverSocket {
                socket.synchronouslySetDelegate(nil)
                socket.disconnect()
                self.serverSocket = nil
                DLog("destroyed serverSocket")
            }
        }
    }
    

    }
    
    func isWifiInterface() -> Bool {
        return self.interfaceName == iOS_wifi_interface
    }
    
    func socketAsData() -> Data {
