我很抱歉,如果这是一个愚蠢的问题,但老实说,我不能弄清楚它没有设置某种ASCII码-〉字符Map器自己,我不认为这是正确的方式来做它。
因此,目前我正在用Scala和Akka制作一个“聊天应用程序”,其中我使用了一个单独的客户端和服务器实体。客户端连接到服务器,发送消息,服务器处理消息。
我发送了一条消息,但是现在我被困在服务器端读取消息了。每当我收到一条消息时,我都会得到一个包含消息中字符的ASCII值的ByteString。我该如何将这个ByteString转换成一个实际的String呢?
相关代码(服务器端):
package chatapp.server
import java.net.InetSocketAddress
import akka.actor.{Actor, ActorSystem}
import akka.io.Tcp._
import akka.io.{IO, Tcp}
/**
* Created by Niels Bokmans on 30-3-2016.
*/
class ServerActor(actorSystem: ActorSystem) extends Actor {
val Port = 18573
val Server = "localhost"
IO(Tcp)(actorSystem) ! Bind(self, new InetSocketAddress("localhost", Port))
def receive: Receive = {
case CommandFailed(_: Bind) =>
println("Failed to start listening on " + Server + ":" + Port)
context stop self
actorSystem.terminate()
case Bound(localAddress: InetSocketAddress) =>
println("Started listening on " + localAddress)
case Connected(remote, local) =>
println("New connection!")
sender ! Register(self)
case Received(data) =>
println(data)
}
}
服务器的图片(如您所见,它接受连接-〉接收新连接-〉接收来自连接的消息):
客户端图片(连接到服务器,然后发送消息“testmessage”)
2条答案
按热度按时间ercv8c1e1#
用途
参见ByteString API,
或者在github上:
最终定义utf8字符串:字符串=解码字符串(标准字符集. UTF_8)
doinxwow2#
您可以像这样使用
decodeString
方法: