Study
Network.framework Study: Server side
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
Use NWLister Receive processing registration and start execution in NWConnection after connection establishment Use the receive method that can specify the number of received bytes. The maximum length of several minutes was acquired from one received data. In the example below, it is 5 bytes. Even if you send 5 bytes or more, it seems that reception is not called continuously after the 6th byte. We are investigating whether we can continue.
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