1. 程式人生 > >IDEA Spark Streaming 操作(套接字流)-----make socket數據源

IDEA Spark Streaming 操作(套接字流)-----make socket數據源

運行 accep index lines sleep div rri object art

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端口

備註:需要同時運行監聽程序

IDEA Spark Streaming 操作(套接字流)-----make socket數據源