通过Java套接字侦听端口

我的客户端与客户端进行通信的服务器软件定期在端口4000上发送交易消息。我需要逐行地将这些消息打印到控制台。 (最终我必须把这些值写到一个表中,但是我稍后保存。)

我试过这个代码,但没有输出任何内容:

package merchanttransaction;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.ClassNotFoundException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class MerchantTransaction {
    public static void main(String[] args) {
        try {
            InetAddress host = InetAddress.getLocalHost();
            Socket socket = new Socket("192.168.1.104", 4000);
            ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
            String message = (String) ois.readObject();
            System.out.println("Message: " + message);

            ois.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

顺便说一句,我需要能够监视该端口,直到程序终止。我不知道上面的代码是否可以这样做,因为我没有看到代码的任何迭代。

我正在使用在Ubuntu上运行的Java版本1.6.0_24,SE运行时环境(build 1.6.0_24-b07)。

最佳答案
您需要使用ServerSocket。你可以找到一个说明here

转载注明原文:通过Java套接字侦听端口 - 代码日志