加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala相当于python echo server / client的例子?

发布时间:2020-12-16 09:23:14 所属栏目:安全 来源:网络整理
导读:scala中的所有“服务器”示例使用演员,反应堆等… 有人可以告诉我如何写一个死的简单回声服务器和客户端,就像下面的Server和Client的python示例一样: # A simple echo server import socket host = '' port = 50000 backlog = 5 size = 1024 s = socket.soc
scala中的所有“服务器”示例使用演员,反应堆等…

有人可以告诉我如何写一个死的简单回声服务器和客户端,就像下面的Server和Client的python示例一样:

# 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

解决方法

您可以在标准库中执行以下操作:

// 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()

如果您不介意使用额外的图书馆,您可能会喜欢Finagle.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读