[JAVA] Étude Swift Network.framework 2019 1206 «Serveur TCP» Partie 2 Utiliser la méthode de réception

Study

Network.framework Etude: côté serveur

environnement

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

Utiliser NWLister Recevoir l'enregistrement du traitement et démarrer l'exécution dans NWConnection après l'établissement de la connexion Utilisez la méthode de réception qui peut spécifier le nombre d'octets reçus. À partir d'une donnée reçue, nous avons acquis la longueur maximale pendant plusieurs minutes. Dans l'exemple ci-dessous, il est de 5 octets. Même si vous envoyez 5 octets ou plus, il semble que la réception ne soit pas appelée en continu après le 6e octet. Nous cherchons à savoir si nous pouvons continuer.

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

Étude Swift Network.framework 2019 1206 «Serveur TCP» Partie 2 Utiliser la méthode de réception
Swift Network.framework Study 2019 1207 «Server TCP» Partie 3 Amélioration de l'utilisation de la méthode de réception
Étude Swift Network.framework 2019 1205 «Serveur TCP»
Étude Swift Network.framework 2019 1208 «Envoyer et recevoir»
Étude Swift Network.framework 2019 1204 «UDP»
Étude Swift Network.framework 2019 1205 «Serveur TCP»
Étude Swift Network.framework 20191203
Étude Swift Network.framework 2019 1210 "Bonjour Parcourir"
Étude Swift Network.framework 2019 1206 «Serveur TCP» Partie 2 Utiliser la méthode de réception
Étude Swift Network.framework 2019 1208 «Envoyer et recevoir»
Etude Swift Network.framework 20200319 "Recevoir et envoyer"
Swift Network.framework Study 2019 1207 «Server TCP» Partie 3 Amélioration de l'utilisation de la méthode de réception
Étude Swift Network.framework 20191203
Étude Swift Network.framework 2019 1204 «UDP»
Étude Swift Network.framework 2019 1210 "Bonjour Parcourir"