当前位置: 首页 > 知识库问答 >
问题:

Java套接字在客户端连接,但在服务器上不被接受

宦宏爽
2023-03-14

我最近开始尝试使用JavaSockets类在服务器和客户机之间创建双向连接。当我使用客户机套接字地址作为InetAddress时,一切正常(这是一次聊天)。getLocalHost(),但是当我在

  Socket clientSocket = new Socket(my_public_ip, 80);

客户端套接字显示连接是通过测试clientSocket形成的。isConnected()返回true。

然而,在服务器端,代码似乎并没有向前推进

Socket clientSocket = server.accept();

我应该提供代码还是问题明确?

编辑:更多信息。无论我的防火墙处于什么状态,使用外部ip地址从我自己的电脑上远程登录都是有效的。当防火墙打开时,java客户端代码不起作用,抛出

java.net.SocketException: Software caused connection abort: recv failed

当防火墙关闭时,使用java客户端代码从服务器返回以下内容(服务器端仍然没有.accept()):

Connected to server. Input a message
Server: HTTP/1.0 503 unknown method
Server: Connection: close
Server: Content-Length: 119
Server: Date: Thu, 23 Oct 2014 12:40:00 GMT
Server: Expires: 0
Server:
Server: <html>
Server: <head><title>Error 503: unknown method</title></head>
Server: <body>
Server: <h1>Error 503: unknown method</h1>
Server: </body>
Server: </html>

之后两个线程都冻结。

共有1个答案

巢靖
2023-03-14

“internal_ip”听起来不像任何人的外部IP地址。显然,您已经连接到服务器以外的其他东西,即某个地方的超文本传输协议服务器。

 类似资料:
  • 我刚刚开始使用Sockets,对于我当前的项目,我需要能够从客户端控制我的程序,但是如果我的项目合作伙伴想同时使用他的客户端,服务器不会向他发送“您已连接”消息,如连接类所示。所以我假设服务器不同时接受多个客户端。我尝试过使用类Connection的Thread,但这也不会向第二个客户端发送消息“您已连接”。我在这里做错了什么? 这是我用来同时连接多个用户的线程: 编辑:附加信息 在第一个客户端连

  • 真的需要你帮忙。 我的项目是通过电缆连接两台PC机,并使用tcp套接字将客户端文本框形式的字符串发送到服务器。问题是ATI只能发送一个字符串,然后连接就会关闭。 注意:某个端口上的连接将在表单加载中建立并成功。

  • 首先我要感谢你花时间... 我在macbook中用C++创建了一个服务器套接字,在运行windows XP的不同机器中用Java创建了一个客户机/套接字。我已将端口指定为5000,但无法指定正确的主机,因此无法进行连接。当我在windows xp中使用WinSock2创建一个C++服务器/套接字时,当我使用本地主机时,连接是完美的...有什么想法吗??? 提前Thnx int main(int a

  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • Java: 在C#中-它停止在“receiver=listener.accept();”在java(android)中-它停止于“sender_socket=new Socket(serverAddr,SERVERPORT);”这应该是java套接字函数的问题--需要另一个函数连接到C#-server。

  • 当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接