2011-05-03 60 views
0

请原谅我的无所作为,因为我自学Java并不知道很多。我试图做一个从Java小程序运行的多人游戏,我有一个服务器端程序工作,将接受字符串的文本,但我所有的尝试找到小程序的代码都失败了。我怎样才能让一个Java applet连接服务器?

我最好的尝试看起来像它的工作,但我认为未能连接到服务器,任何想法为什么? (localIP是我正确的IP和其他测试正常工作)

public void init() 
{ 
    try 
    { 
     socket = new Socket(localIP, 5555); 
     inStream = new DataInputStream(socket.getInputStream()); 
     outStream = new PrintStream(socket.getOutputStream()); 
    } 
    catch(Exception e) 
    { 
    never reached 
    } 
} 

我不介意杀这个,如果有人能告诉我一个更好的办法来做到这一点或根本任何方式。

+0

'但我认为无法连接到服务器,“运行此代码时发生了什么? – 2011-05-03 02:28:09

+0

该程序未能提供任何错误并运行,如果它已经工作,服务器也不接受任何事情。 – candydave 2011-05-03 03:27:42

回答

0

一个java小应用程序只能连接到它下载的服务器。如果您没有从localIP加载小程序,那么您将无法连接到它。

您可以通过签署小程序来避开此限制。

0

鉴于您没有使用Http协议,One假定该applet是从5555以外的另一个端口加载的。如果是这种情况,则需要对applet进行签名才能执行此功能。

+0

考虑到你们都说这个接口是强加的,网页自然会在端口80上,而这个端口已经被我的虚拟主机程序绑定了,我怎么能在同一个端口上运行一个服务器呢? 或者有没有办法来伪造这个? – candydave 2011-05-03 03:25:05

+0

添加一个servlet来处理applet将通过的一些上下文。 Applet将使用HttpURLConnection(和HttpProtocol)从applet执行Http Get或Http Posts。 – MeBigFatGuy 2011-05-03 03:27:18

+0

如果您的托管公司不支持基于java服务器的编码,并且您只是从中加载applet,然后连接到另一台服务器,那么您仍然可以执行该操作,该applet只需要进行签名,您可以执行此操作你自己。 – MeBigFatGuy 2011-05-03 03:30:22