1
Ich verwende SwiftSocket, um TCP-Nachrichten von meinem iPad an ein lokales Gerät zu senden.SwiftSocket: Kann nicht mehr als eine TCP-Nachricht senden
Erste Nachricht wird korrekt empfangen, aber wenn ich versuche, eine andere Nachricht zu senden, erhalte ich einen connectionTimeout
Fehler.
Irgendeine Idee?
Swift 3-Code:
func sendMessage(_ message: String) {
self.client = TCPClient(address: "192.168.0.16", port: 7777)
switch self.client.connect(timeout: 1) {
case .success:
switch self.client.send(string: "\(message)\n") {
case .success:
print("success")
case .failure(let error):
print("Sending error: \(error)")
}
case .failure(let error):
print("Connection error: \(error)")
}
}
-Code in CLI, um Nachrichten abzuhören:
nc -l 192.168.0.16 7777
Mit Socket-Kommunikation, die Fassung bleibt in der Regel offen und Sie sende mehrere Nachrichten herunter. Ich schätze, das andere Ende hört immer noch auf die erste Verbindung, die Sie erstellt haben. Ich denke, du willst die 'connect'-Methode hier herausziehen und die offene Verbindung in einer Eigenschaft speichern. Andernfalls müssen Sie jedes Mal trennen, was nicht sehr effizient ist. –
@DaveWeston Wieso habe ich nicht daran gedacht? Das hat mein Problem behoben, vielen Dank! – Skoua
Gern geschehen! –