2013-04-17 172 views
0

我想创建一个程序来模拟连接到网络的设备并通过特定端口发送信号。通过网络发送数据

设备连接到网络并通过端口发送数据。在服务器(或计算机)上,我已经从Lantronix运行CPR Manager v.4.3.0.1,将IP:PORT关联到计算机上的虚拟COM端口。我有一个监听COM端口并执行操作的Java程序,这对设备非常有用。

我尝试使用Socket类进行连接写一个Java应用程序,但它是联合国的成功,对心肺复苏方面,它只是记录在执行第一行一个断开:

Socket socket = new Socket("192.168.1.160", 8888); 

我也尝试使用UDP方法,没有消息记录什么。

任何帮助将不胜感激。另外,如果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(); 
    } 
    } 

由于Java代码。

更新

我与设备的一些人取得了联系,他们给我看,有以通过TCP/IP连接发送有ASCII命令协议直接交流的方式。这将允许在每个级别进行更深入的控制。

所以,现在我正在编写一个可以使用这些协议进行通信的java程序。 因为我不再使用通信端口,所以我试图模拟波特率,数据位和停止位。当我有一些工作时,我会发布。

感谢您的帮助。

回答

0

如果您正在使用的产品正在将流量转发到COM端口,您应该在COM端口上监听而不是在网络连接上。套接字用于网络流量。一个快速的谷歌搜索结果给我。 How to send data to COM PORT using JAVA?

也许这会有帮助吗?

+0

感谢您的回应,是的,我可以最definitly做到这一点,但它不是我正在寻找。我需要让应用程序通过网络发送信号,这样我读取com端口的应用程序就不会知道信号之间的差异。这样做的目标是发送一个恒定的信号以便记录,这将有助于确定ip:port连接是否断开连接(因为com端口仍然可用) –

+0

哦,这样做更有意义。这个信号发送者也是接收者吗?或者他们两个不同的盒子?根据你的回答和问题,它们似乎是同一个盒子。 – Joshua

+0

它绝对是接收者,但它不一定是发送者。我认为,如果信号得到正确的发送和解释正确,它应该无关紧要,但是我再次不能100%确定。 –