gpt4 book ai didi

Java - 无法与 ServerSocket 连接

转载 作者:行者123 更新时间:2023-11-29 06:04:23 25 4
gpt4 key购买 nike

我正在尝试使用端口为 2649 的 ServerSocket,但其他人无法连​​接。它适用于本地主机。这是人们在尝试连接时遇到的错误:

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at Client.main(Client.java:11)

我有端口转发,但我的计算机上没有激活防火墙。这是我在端口转发时使用的设置。

http://i.imgur.com/NLdaA.png

http://i.imgur.com/FJpJQ.png

当我在 canyouseeme.org 上检查端口 2649 时,它说连接超时。

我也在使用 Windows XP。感谢您的帮助。

谢谢

编辑:这是我正在使用的代码

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

public static void main(String[] args)throws Exception {
System.out.println("Starting...");
File file = new File("C:/Testing.txt");
InputStream in = new FileInputStream(file);
ServerSocket server = new ServerSocket(2649);
System.out.println("Ready for connection");
Socket socket = server.accept();
OutputStream output = socket.getOutputStream();
ObjectOutputStream out = new ObjectOutputStream(output);
out.writeObject("C:/Testing.txt");
byte[] buffer = new byte[socket.getSendBufferSize()];
int bytesReceived = 0;
while ((bytesReceived = in.read(buffer)) > 0) {
output.write(buffer, 0, bytesReceived);
}
out.flush();
out.close();
in.close();
server.close();
socket.close();
output.flush();
output.close();
System.out.println("Finished");
}

}

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.Socket;

public class Client {

public static void main(String[] args) throws Exception {
System.out.println("Starting...");
Socket socket = new Socket("IP ADDRESS", 2649);
InputStream input = socket.getInputStream();
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
FileOutputStream out = new FileOutputStream(new File((String) in.readObject()));
byte[] buffer = new byte[socket.getReceiveBufferSize()];
int bytesReceived = 0;
while ((bytesReceived = input.read(buffer)) > 0) {
out.write(buffer, 0, bytesReceived);
}
in.close();
out.close();
input.close();
socket.close();
System.out.println("Finished");
}

最佳答案

如果不是防火墙。确保将服务器套接字绑定(bind)到 0.0.0.0 而不是本地主机。尝试调用 server.bind(new InetSocketAddress("0.0.0.0", port));

关于Java - 无法与 ServerSocket 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com