【发布时间】:2015-08-18 17:04:30
【问题描述】:
我有以下代码来创建客户端套接字来发送/接收数据:
val socket:Socket = new Socket(InetAddress.getByName("127.0.0.1"), 7777)
val inputStream = socket.getInputStream()
val bufferSource = new BufferedSource(inputStream)
val out = new PrintStream(socket.getOutputStream())
var data = "Hello Everyone"
out.println(data)
out.flush()
***socket.shutdownOutput()***
val in = bufferSource.getLines()
if (in.hasNext) {
println(in.next())
}
如果我不运行 socket.shutdownOutput(),我将无法从服务器获取数据, 因为服务器端仍在等待输入。因此我必须关闭 outputStream。 但如果关闭输出,则无法重新打开。所以我必须创建一个新的套接字来发送新数据。 这导致发送一条记录需要创建一个新的套接字。这真的很尴尬。 有没有其他方法可以告诉服务器输出已经完成而不关闭输出。 提前致谢!
【问题讨论】:
标签: sockets streaming outputstream