with way variable the strings right print learn how hard content and python scala echo

way - printing strings with variables python



¿Scala equivalente de Python echo server/client ejemplo? (5)

Todos los ejemplos de "servidores" en scala utilizan actores, reactores, etc.

Alguien me puede mostrar cómo escribir un servidor y cliente de eco simple y muerto, como en el siguiente ejemplo de Python de Server y Client :

# A simple echo server import socket host = '''' port = 50000 backlog = 5 size = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((host,port)) s.listen(backlog) while 1: client, address = s.accept() data = client.recv(size) if data: client.send(data) client.close()

# A simple echo client import socket host = ''localhost'' port = 50000 size = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host,port)) s.send(''Hello, world'') data = s.recv(size) s.close() print ''Received:'', data




Puedes hacer lo siguiente dentro de la biblioteca estándar:

// Simple server import java.net._ import java.io._ import scala.io._ val server = new ServerSocket(9999) while (true) { val s = server.accept() val in = new BufferedSource(s.getInputStream()).getLines() val out = new PrintStream(s.getOutputStream()) out.println(in.next()) out.flush() s.close() }

// Simple client import java.net._ import java.io._ import scala.io._ val s = new Socket(InetAddress.getByName("localhost"), 9999) lazy val in = new BufferedSource(s.getInputStream()).getLines() val out = new PrintStream(s.getOutputStream()) out.println("Hello, world") out.flush() println("Received: " + in.next()) s.close()

Si no te importa usar bibliotecas adicionales, es posible que te guste Finagle .


Puedes usar netty java library. Aquí hay un ejemplo de uso en Scala:

https://github.com/mcroydon/scala-echo-server

Generalmente necesitas usar la API de Java Socket. En este ejemplo, se usa la API de Java Socket, pero todo el servidor está envuelto en Actor para procesar a los clientes en un hilo separado y no para bloquear el hilo aceptador (lo mismo que normalmente hará en Java, pero usará los hilos directamente).