Java 发送 TCP请求(Socket)

import com.gientech.util.LoggerUtil;
import com.gientech.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
 *
 * TCP客户端
 * @author xiarg
 * @date 2023/11/2 10:11
 */
public class TdspTcpClient {

    private static final Logger logger = LoggerFactory.getLogger(TdspTcpClient.class);

    public static String sendTcpRequest(String host,String post,String message){
        LoggerUtil.info(logger, "[TdspTcpClient.sendTcpRequest]=====>>>>>接口请求start<<<<<===== host->{0}," +
                "post->{1},message->{2}", host,post,message);
        String result = StringUtils.EMPTY;
        try (Socket socket = new Socket(host, Integer.parseInt(post));
             PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
             BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
            // 发送请求
            out.println(message);
            // 接收响应
            String response;
            while ((response = in.readLine()) != null) {
                result += response;
            }
            LoggerUtil.info(logger, "[TdspTcpClient.sendTcpRequest]=====>>>>>接口请求返回结果<<<<<===== {0}",
                    result);
        } catch (IOException e) {
            LoggerUtil.info(logger, "[TdspTcpClient.sendTcpRequest]=====>>>>>发送出现异常<<<<<===== {0}",
                    e.getMessage());
            e.printStackTrace();
        }

        return result;
    }

}

        此代码可以直接复制使用。特别说下,此try的写法,不需要关注关闭资源的问题,因为会自动关闭。只要是实现了AutoCloseable 接口就可以这样处理。

你可能感兴趣的:(开发,java,tcp/ip,python)