Swift Network.framework Study 20191203
Study
Network.framework
Study:Client側
環境
Client:Swift、Xcode
Server:Java、NetBeans
Client Source Swift
import Foundation import Network func startConnection() { let myQueue = DispatchQueue(label: "ExampleNetwork") let connection = NWConnection(host: "localhost", port: 7777, using: NWParameters.tcp) connection.stateUpdateHandler = { (newState) in switch(newState) { case .ready: print("ready") sendMessage(connection) case .waiting(let error): print("waiting") print(error) case .failed(let error): print("failed") print(error) default: print("defaults") break } } connection.start(queue: myQueue) } func sendMessage(_ connection: NWConnection) { let data = "Example Send Data".data(using: .utf8) let completion = NWConnection.SendCompletion.contentProcessed { (error: NWError?) in print("送信完了") } connection.send(content: data, completion: completion) } startConnection() while true { sleep(1) }
最後のループとか格好悪い。
Server Source Java
package example.java.network; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class ExampleServerSocket { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(7777); System.out.println("socket create"); Socket socket = serverSocket.accept(); System.out.println("accept"); Scanner scanner = new Scanner(socket.getInputStream()); while(scanner.hasNext() == true) { System.out.println(scanner.nextLine()); } } catch(Exception e) { System.out.println(e); } } }
久々でScannerのhasNext()条件を忘れている。確認して改良しないと。