我想创建一个程序来模拟连接到网络的设备并通过特定端口发送信号。
该设备连接到网络并通过端口发送数据。在服务器(或计算机)上,我从 Lantronix 运行 CPR Manager v.4.3.0.1,它将 IP:PORT 与计算机上的虚拟 COM 端口相关联。我有一个监听 COM 端口并执行操作的 java 程序,这对设备非常有用。
我尝试使用 Socket 类编写一个 java 应用程序来执行连接,但它没有成功,在 CPR 端,它只在执行第一行时注册一个 Disconnect:
Socket socket = new Socket("192.168.1.160", 8888);
我也尝试过使用 UDP 方法,但没有记录任何消息。
任何帮助将不胜感激。此外,如果 Java 没有可能的解决方案,那么任何其他语言都可以。
编辑:
这是我尝试发送数据的Java代码
public static void main(String[] args){
try{
Socket socket = new Socket("192.168.1.160", 8888);
if(socket.isConnected()){
System.out.println("It is connected.");
socket.setKeepAlive(true);
System.out.println(socket.isBound());
}else{
System.out.println("It is not connected.");
}
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in =
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = "32";
for(int i = 0; i < 50; i++){
out.println(msg);
}
//Receive a reversed message
msg = in.readLine();
System.out.println("Server : " + msg);
}catch(Exception ioe){
ioe.printStackTrace();
}
}
谢谢。
更新
我与这些设备的一些人取得了联系,他们向我展示了一种通过 TCP/IP 连接直接通信的方法,该连接向那里发送 ASCII 命令协议。这将允许在每个级别进行更深入的控制。
所以,现在我正在编写一个可以使用这些协议进行通信的 java 程序。因为,我不再使用通信端口了,我想模拟波特率、数据位、停止位的东西。当我有一些有效的时候我会发布。
感谢所有的帮助。