super94 2019-04-23 13:43 采纳率: 0%
浏览 741

java socket怎么获取端口心跳包数据?

1、返回400

``` public static synchronized String tcpPost(String clientIp,String clientPort,String msg){
String rs = "";

    if(clientIp==null||"".equals(clientIp)||clientPort==null||"".equals(clientPort)){
        logger.error("Ip或端口不存在...");
        return null;
    }

    int clientPortInt = Integer.parseInt(clientPort);

    logger.info("clientIp:"+clientIp+" clientPort:"+clientPort);

    Socket s = null;
    OutputStream out = null;
    InputStream in = null;
    try {
        s = new Socket(clientIp, clientPortInt);
        s.setSendBufferSize(4096);
        s.setTcpNoDelay(true);
        s.setSoTimeout(60*1000);
        s.setKeepAlive(true);
        out = s.getOutputStream();
        in = s.getInputStream();

        //准备报文msg
        logger.info("准备发送报文:"+msg);

        out.write(msg.getBytes("GBK"));
        out.flush();

        byte[] rsByte = readStream(in);

        if(rsByte!=null){
            rs = new String(rsByte, "GBK");
        }


    } catch (Exception e) {
        logger.error("tcpPost发送请求异常:"+e.getMessage());
    }finally{
        logger.info("tcpPost(rs):"+rs);
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 02:26
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Java中,我们可以使用sun.net.httpserver.HttpServer来创建一个HTTP服务器,并监听特定的端口号。当有客户端连接到这个服务器时,它会自动处理客户端的数据。

    以下是一个简单的例子:

    import java.io.*;
    import java.net.*;
    
    public class Server {
    
        private static final int PORT = 8080;
    
        public static void main(String[] args) throws IOException {
            HttpServer server = HttpServer.create(new InetSocketAddress(PORT), 0);
            server.createContext("/", new EchoHandler());
            server.start();
        }
    }
    
    class EchoHandler implements Handler {
    
        @Override
        public void handle(HTTPRequest request, HTTPResponse response)
                throws IOException {
            response.sendHeaders(200, "text/plain", "UTF-8");
            response.end("Hello World\n");
        }
    }
    

    在这个例子中,我们首先定义了一个端口(在这个例子中是8080),然后创建了一个HttpServer对象并设置了它的地址和上下文处理器。当我们从这个服务器接收数据时,我们的EchoHandler类会被调用,并将"Hello World"作为响应发送给客户端。

    注意:这只是一个基本的例子,实际的应用可能需要更复杂的错误处理、认证和安全措施等。此外,你还需要确保你的服务器有足够的资源来处理大量的并发连接。

    评论

报告相同问题?