[JAVA] Swift Network.framework Study 2019 1206 "Server TCP" Teil 2 Verwenden Sie die Empfangsmethode

Study

Network.framework Studie: Serverseite

Umgebung

Client:Java、NetBeans Server:Swift、Xcode

Client Source Java

package example.java.network;

import java.io.PrintWriter;
import java.net.Socket;

public class ExampleClientSocket {
    public static void main(String[] args) {
        try(Socket socket = new Socket("localhost", 7777);
            PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);) {
            printWriter.println("Example Send Data");
        }
        catch(Exception e) {
            System.out.println(e);
        }
    }
}

Server Source Swift

Verwenden Sie NWLister Empfangen Sie die Verarbeitungsregistrierung und starten Sie die Ausführung in NWConnection nach dem Verbindungsaufbau Verwenden Sie die Empfangsmethode, mit der die Anzahl der empfangenen Bytes angegeben werden kann. Aus einem empfangenen Datenwert haben wir die maximale Länge für einige Minuten ermittelt. Im folgenden Beispiel sind es 5 Bytes. Selbst wenn Sie 5 Bytes oder mehr senden, scheint der Empfang nach dem 6. Byte nicht kontinuierlich aufgerufen zu werden. Wir untersuchen, ob wir weitermachen können.

main.swift

import Foundation
import Network

var networkServer = NetworkServer()

networkServer.startListener()

while networkServer.running {
    sleep(1)
}

NetworkServer.swift

import Foundation
import Network

class NetworkServer {
    public var running = true

    func startListener() {
        let myQueue = DispatchQueue(label: "ExampleNetwork")

        do {
            let nWListener = try NWListener(using: .tcp, on: 7777)
            nWListener.newConnectionHandler = { (newConnection) in
                print("New Connection!!")
                newConnection.receive(minimumIncompleteLength: 1, maximumLength: 5, completion: { (data, context, flag, error) in
                    print("receiveMessage")
                    let receiveData = [UInt8](data!)
                    print(receiveData)
                })
                newConnection.start(queue: myQueue)
            }
            nWListener.start(queue: myQueue)
            print("start")
        }
        catch {
            print(error)
        }
    }
}

Recommended Posts

Swift Network.framework Study 2019 1206 "Server TCP" Teil 2 Verwenden Sie die Empfangsmethode
Swift Network.framework Study 2019 1207 "Server TCP" Teil 3 Verbesserte Verwendung der Empfangsmethode
Swift Network.framework-Studie 2019 1205 "Server TCP"
Swift Network.framework Study 2019 1208 "Senden und Empfangen"
Swift Network.framework Study 2019 1204 "UDP"
Swift Network.framework-Studie 2019 1205 "Server TCP"
Swift Network.framework-Studie 20191203
Swift Network.framework Study 2019 1210 "Bonjour Browse"
Swift Network.framework Study 2019 1206 "Server TCP" Teil 2 Verwenden Sie die Empfangsmethode
Swift Network.framework Study 2019 1208 "Senden und Empfangen"
Swift Network.framework Study 20200319 "Empfangen und Senden"
Swift Network.framework Study 2019 1207 "Server TCP" Teil 3 Verbesserte Verwendung der Empfangsmethode
Swift Network.framework-Studie 20191203
Swift Network.framework Study 2019 1204 "UDP"
Swift Network.framework Study 2019 1210 "Bonjour Browse"