我正在尝试运行" GreetingClient"以下代码中的代码: http://www.tutorialspoint.com/java/java_networking.htm
服务器名称设置为" localhost"使用这些参数,我可以在没有任何异常的情况下运行程序,但代码在到达in.readUTF()行时会旋转。
当端口更改为任何其他端口时,我会收到连接拒绝异常。
另一方面,当我创建一个简单的" ServerSocket"在端口80上接收请求的程序,我得到"已经在使用的地址"例外,80以外的任何端口都适用于" ServerSocket"代码。
我在本地安装了使用端口80的Red Hat企业Web服务器,但它已关闭,并且在这些程序运行时不会运行。
执行telnet会给我以下结果:
我已启用telnet客户端功能。
答案 0 :(得分:0)
你正在做的事情没有意义。客户端和服务器一起使用。您无法将任意客户端连接到任意服务器。他们必须使用相同的协议,在这种情况下使用writeUTF()
和readUTF().
此代码仅在连接到同一链接中的相应服务器时有效。您无法将其连接到端口80,它是HTTP服务器,而不是GreetingServer,
并期望它可以工作。它不是HTTP客户端,它是自己服务器的客户端。 telnet服务器也不会工作,连接到GreetingServer.
'拒绝连接'意味着没有任何内容正在监听IP:端口。
您需要在某个端口上运行GreetingServer
,然后在客户端旁边运行。{/ p>
NB好奇的代码。服务器捕获永不抛出的SocketTimeoutException
。