IDEA Spark Streaming 操作(套接字流)-----make socket数据源

import java.io.PrintWriter
import java.net.ServerSocket

import scala.io.Source


object DStream_makeSocket {
  def main(args: Array[String]): Unit = {
    val file="/home/soyo/桌面/spark编程测试数据/1.txt"
    val lines=Source.fromFile(file).getLines().toList
      lines.foreach(println)
    val rowCount=lines.length //行数
    val listen= new ServerSocket(6667)
    while(true)
      {
        val socket=listen.accept()
        val thread=new Thread(){
          override def run={
            println("客户端地址为:"+socket.getInetAddress)
            val send=new PrintWriter(socket.getOutputStream,true)
            while (true)
              {
                Thread.sleep(1000)  //每隔1秒发送一次数据
               val content=lines(index(rowCount))
                println("******")
                println(content)
                send.write(content+"\n")
                send.flush()
              }
            socket.close()
          }
        }
        thread.start()
      }
  }
  def index(length:Int):Int ={
    val rd=new java.util.Random()
    rd.nextInt(length) //随机获取0-length 之间的一个数
  }

}

功能:随机读取1.txt文件内的一行 发送到6667端口

备注:需要同时运行监听程序

posted @ 2017-10-16 11:23  soyosuyang  阅读(395)  评论(0编辑  收藏  举报