用JAVA实现nc指令发送消息
本人最近遇到一个问题需要用java向SparkStreaming发送消息,但是SparkStreaming无法直接与java建立Socket连接,只能监听某台服务器的某个端口。所以需要让java实现一个类似“nc -lk 端口号”地方法。
- 该方法无法单独运行,需要与监听的方法配合运行
- 1 先启动监听方法,例如SparkStreaming 接收TCP数据的服务
- 2 调用sendTCP(string) 发送字符串消息
- 3 查看监听程序是否获取到了发送的消息
- 此方法还存在一个问题,发送的数据量比较大时(比如一个大约10Kb的字符串时)接听程序可能无法一次性接收。
源代码
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class JavaNCsend{
public static void sendTCP(String sendStr){
int port = 8919;
try {
ServerSocket server = new ServerSocket(port);