【问题标题】:Crash-course help in receiving data in Java, TCP/IP在 Java、TCP/IP 中接收数据的速成课程帮助
【发布时间】:2012-01-21 18:50:14
【问题描述】:

我在接收简单的字符串数据类型时遇到问题,数据是通过端口 1180 从 IP 10.10.11.5 发送的(Labview 正在发送数据包)。当我尝试此代码时,出现连接错误。 错误消息:

 java.io.IOException: ConnectException: connect refused
 in virtual method #12 of com.sun.squawk.platform.posix.GCFSocketsImpl(bci=233)
 at com.sun.squawk.io.j2me.socket.Protocol.open(bci=104)
 in static method #4 of javax.microedition.io.Connector(bci=125)
 at javax.microedition.io.Connector.open(231)
 at javax.microedition.io.Connector.open(193)
 at javax.microedition.io.Connector.open(177)
 atedu.wpi.first.wpilibj.templates.RobotTemplate.robotInit(RobotTemplate.java:33)
 at edu.wpi.first.wpilibj.IterativeRobot.startCompetition(IterativeRobot.java:74)
 at edu.wpi.first.wpilibj.RobotBase.startApp(RobotBase.java:156)
 in virtual method #10 of javax.microedition.midlet.MIDlet(bci=17)
 at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(64)
 at com.sun.squawk.imp.MIDletMainWrapper.main(110)
 in virtual method #95 of com.sun.squawk.Klass(bci=25)
 at com.sun.squawk.Isolate.run(1506)
 at java.lang.Thread.run(231)
 in virtual method #47 of com.sun.squawk.VMThread(bci=42)
 in static method #3 of com.sun.squawk.VM(bci=6)

提前感谢您的提示和帮助!

SocketConnection socketConnect;
InputStream myInputStream;
Datagram datagram;
DatagramConnection dataConnect;
String message;
DataInputStream stream;

public void robotInit() {

    message = null;
    try {
    socketConnect = (SocketConnection) Connector.open("socket://10.10.11.5:1180");
    myInputStream = socketConnect.openInputStream();
    }
    catch (IOException ex) {
        ex.printStackTrace();
    }
    System.out.println(message);
}

编辑: 我们的设置很简单,但也很复杂。您看到的代码被放在 cRIO 上,它通过以太网电缆连接到我们的笔记本电脑。在 Labtop 上,我们让 Labview 生成数据包,我们通过端口 1180 将这些数据包发送到 IP 10.10.11.2(cRIO 的 IP)。

【问题讨论】:

    标签: sockets tcp stream ip


    【解决方案1】:

    我不认为这是“编程错误” - 我几乎可以肯定问题是“网络配置”。

    检查您的侦听器(服务器)程序和客户端之间的任何防火墙。

    尤其是检查 Windows 防火墙。

    如果您要通过公司路由器,您可能需要让您网站的网络管理员参与进来,为您“打个洞”:)

    【讨论】:

    • “连接被拒绝”是问题所在。这可能意味着没有人在您尝试连接的主机上的端口 1180 上监听;这可能意味着有人阻塞了该端口。问:你有进程监听 1180 端口吗?问:如果“是”,您可以在同一主机上进行本地连接吗?问:10.10.11.2 和 10.10.11.5 之间是否有防火墙或路由器?问:是否有任何软件防火墙(如 Windows 防火墙和/或 A/V 软件)在任一主机上运行?
    • 防火墙已被禁用。互联网被禁用所有它是两个连接在一起。我们没有进程监听
    • 一个细节是错误几乎在编译后立即发生。
    • 关注“连接被拒绝”。您可以使用非 Java 客户端进行测试,也可以使用“telnet HOSTNAME PORT#”进行测试。您甚至可以使用 Wireshark 查看 TCP/IP 数据包:wireshark.org。问:两个主机可以互相“ping”吗?如果没有 - 你没有网络,他们无法沟通。 Q:1180端口有进程监听吗?如果没有,那么客户端显然没有人可以“连接”。
    猜你喜欢
    • 2016-05-06
    • 2011-09-13
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多