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端口
备注:需要同时运行监听程序