我正在编写一个程序,通过套接字从PLC(Allen Bradley 1756 L63)中获取模拟和离散数据点。到目前为止,我在创建套接字时遇到了麻烦。我的代码如下:
import java.io.*;
import java.net.*;
class PLCServer
{
public static void main(String argv[]) throws IOException
{
// IP address of the ethernet card
String ENBTIP = "192.168.10.14";
DataInputStream socketReader = null;
PrintStream socketWriter = null;
try
{
Socket client = new Socket(ENBTIP, 9100);
socketReader = new DataInputStream(client.getInputStream());
socketWriter = new PrintStream(client.getOutputStream());
} catch (UnknownHostException e) {
System.out.println("Error setting up socket connection");
System.out.println("host: 192.168.10.14 port: 9100");
} catch (IOException e) {
System.out.println("Error setting up socket connection: " + e);
System.out.println("host: 192.168.10.14 port: 9100");
}
// Debugging code
// System.out.println(InetAddress.getByName(ENBTIP).isReachable(10000));
}
}
当我运行程序时,我得到连接拒绝异常。
输出:
nick@ubuntu:~/Java Programs/PLC Program$ java PLCServer
Error setting up socket connection: java.net.ConnectException: Connection refused
host: 192.168.10.14 port: 9100
有人能给我一些指导吗?
答案 0 :(得分:2)
你可以先尝试'ping 192.168.10.14',如果它有响应(它应该是),那么试试'telnet 192.168.10.14 9100'。如果它有一些响应,如: 尝试192.168.10.14 ... 连接到192.168.10.14。 然后你的java代码有点错误。否则就会出现网络问题。