0

我正在尝试从 symbian 设备上的 j2me midlet 打开一个 tcp 套接字到 Windows(C#)套接字服务器。服务器正在工作,并经过数月的测试。现在,当我尝试从 midlet 打开一个套接字时

clientSocketConnection = (SocketConnection) Connector.open("socket://" + ip + ":" + port);

它只是超时并出现 -34 错误(无法连接)。

我知道手机具有网络功能和权限,因为我可以在一侧使用“ServerSocket”和服务器所在的同一台机器上打开两部手机(模拟)之间的此类套接字连接。

不知何故,J2ME Socket 与 C# 对应物不兼容....

listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

任何关于此事的提示将不胜感激。另外,我应该在服务器端使用另一种类型的套接字吗?我找不到有关 J2ME 套接字的 AdressFamily、SocketType 或 ProtocolType 的信息。

由于最近的评论而添加信息。这不是防火墙问题,因为我没有防火墙,并且为机器 ip 配置了 DMZ。电话(模拟)可以访问互联网,当我在同一台机器上打开一个从模拟器到另一个的套接字时,使用“客户端”端的 WAN PUBLIC ip 找到它工作的“服务器”端。

4

1 回答 1

0

嗯,现在解决了。真的很奇怪,但是在“localhost”上绑定一个 j2me 监听端口(ServerPort)与在“localhost”上绑定一个 .net 监听端口不同。我的意思是,当我在 localhost 上创建一个“服务器”midlet 时,客户端可以连接,但是当我在 .net 服务器上进行时,它们不能。“解决方案”是硬核计算机 ip 而不是使用“localhost”。我真的不明白为什么,但这有效......

于 2011-09-04T19:55:08.507 回答