Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Web服务器从InputStream获取URL_Scala_Sockets_Http - Fatal编程技术网

Scala Web服务器从InputStream获取URL

Scala Web服务器从InputStream获取URL,scala,sockets,http,Scala,Sockets,Http,我正在用Scala编写一个小型HTTP服务器 我要从Sockets Inputstream读取以下代码 val input = Source.fromInputStream(s.getInputStream).mkString 不幸的是,当我尝试使用wget localhost:8008访问服务器时,这会阻塞我的线程,因为我认为流没有关闭 如何从f.e.wget从socket inputstream发送到服务器的HTTP请求中正确提取URL,而不阻塞整个线程?目前我正在使用此解决方案 v

我正在用Scala编写一个小型HTTP服务器

我要从Sockets Inputstream读取以下代码

val input = Source.fromInputStream(s.getInputStream).mkString
不幸的是,当我尝试使用
wget localhost:8008
访问服务器时,这会阻塞我的线程,因为我认为流没有关闭


如何从f.e.wget从socket inputstream发送到服务器的HTTP请求中正确提取URL,而不阻塞整个线程?

目前我正在使用此解决方案

   var list: List[Byte] = Nil

   while(s.getInputStream.available() != 0){
     list = s.getInputStream.read.toByte  :: list
   }

   val byteArray = list.reverse.toArray


   val inputString = new String(byteArray)

如果有人有更好的答案,请发帖。

这一条对我来说非常适用:

val client = socket
val in = new BufferedReader(new InputStreamReader(client.getInputStream)).readLine
println("Server received:" + in)