无法打开从J2ME到C#服务器的套接字连接

时间:2011-09-02 18:25:05

标签: c# sockets java-me tcp s60-5th-edition

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

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

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

我知道手机具有网络功能和权限,因为我可以在一侧使用“ServerSocket”并在服务器所在的同一台机器上打开2个电话(模拟)之间的插槽连接。

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

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

对此事的任何暗示都会非常感激。 另外,我应该在服务器端使用其他类型的套接字吗?我找不到有关J2ME套接字的AdressFamily,SocketType和ProtocolType的信息。

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

1 个答案:

答案 0 :(得分:0)

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