gpt4 book ai didi

java - 我应该把我的 socket 改成什么?

转载 作者:行者123 更新时间:2023-12-03 11:52:21 25 4
gpt4 key购买 nike

我创建了一个简单的基于文本的 RPG,经过大量工作后设法将其放在网站上(www.worldofthedrakon.com)。我刚刚创建了一个服务器和客户端,但我遇到了用户从他们的计算机访问服务器的问题。我的套接字设置为:

Socket socket = new Socket("localhost", 8800);

现在我已经测试了将 localhost 更改为我的 IP,但无济于事。我得到的错误是连接超时,连接被拒绝。有人能指出我正确的方向吗?如果我的问题看起来含糊不清,我深表歉意,可以提供更多代码。有很多,所以我不想轰炸你:) 谢谢。
服务器端:
public Server() {
setLayout(new BorderLayout());
add(new JScrollPane(jta), BorderLayout.CENTER);

setTitle("Multi-Thread Server");
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);

try {
ServerSocket serverSocket = new ServerSocket(8800);
jta.append("MultiThreadServer started at " + new Date() + '\n');

int clientNo = 1;

while(true) {
Socket socket = serverSocket.accept();
jta.append("Server Thread for client " + clientNo + " at " + new Date() + '\n');

InetAddress inetAdress = socket.getInetAddress();
jta.append("Client " + clientNo + "'s host name is " + inetAdress.getHostName() + "\n");
jta.append("Client " + clientNo + "'s IP Address is " + inetAdress.getHostAddress() + "\n");

HandleAClient task = new HandleAClient(socket);

new Thread(task).start();

clientNo++;
}
} catch(IOException ex) {
System.err.println(ex);
}

客户端:
try {
Socket socket = new Socket("localhost", 8800);

fromServer = new DataInputStream(socket.getInputStream());
toServer = new DataOutputStream(socket.getOutputStream());
} catch (IOException ex) {
jta_TextArea.setText(ex.toString() + '\n');
}

最佳答案

您的套接字绑定(bind)到 localhost这意味着 in 只能为本地客户端服务。如果您希望其他人看到您的服务器,第一步是绑定(bind)到其他人可见的 IP 地址!

关于java - 我应该把我的 socket 改成什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8920059/

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