java - 设置一个简单的服务器/客户端,得到“java.net.ConnectException:连接被拒绝:连接”
问题描述
我正在努力设置我的第一个服务器/客户端连接。我的 GUI 有一个对话框。按下其中的发送按钮后,我打电话给client.connect().
它第一次工作,但是当我继续并重新打开对话框(按发送后它会自行关闭)并尝试再次执行相同操作时,我将收到“连接被拒绝”错误。我怀疑这是由于服务器仍然连接到原始套接字并且按钮事件client.connect()
再次触发。(这将尝试连接一个新的)。但我不知道如何确保不会发生这种情况。一旦对话框关闭,我必须以某种方式关闭客户端套接字,对吗?我该如何实施?还是问题出在其他地方?这只是一个感觉有点正确的猜测。
这是我的Client
课程(它包括connect()
上面调用的方法):
public class Client extends Application
{
private String string = "";
Socket s;
@Override
public void start(Stage primaryStage)
{
VBox root = new VBox();
Scene scene = new Scene(root, 380, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) throws IOException
{
Client client = new Client();
client.connect();
launch(args);
}
public void connect() throws UnknownHostException, IOException
{
s = new Socket("localhost",3000);
System.out.println("Connected");
PrintWriter dos = new PrintWriter(s.getOutputStream());
dos.println(string);
dos.flush();
}
}
这是我的Server
课:
public class Server
{
public static void main(String[] args) throws UnknownHostException, IOException
{
ServerSocket server = new ServerSocket (3000);
Socket s = server.accept();
System.out.println("Connected");
BufferedReader dis = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println(dis.readLine());
}
}
请注意,这是我第一次在 java 中设置服务器/客户端,因此尝试使用本地主机和可能明显的问题。
解决方案
推荐阅读
- javascript - 如何使用与 JavaScript 的用户交互将图像更改为同一 HTML 中的另一个图像?
- python - “硬币”不动
- javascript - 不明白为什么这个事件监听器应该进入循环
- python - TeleBot:“发生连接错误
- list - 如何在 Python 中使用 API 密钥进行 API 请求
- r - 如何将 MVN 包中的输出放入 R 中的表中?
- firebase - “FirebaseUser”未来的问题
- python - 你能以某种方式在 python 的全局级别上使用本地函数吗?
- reactjs - 无法使用反应上下文
- mongoose - 使用 Mongoose 的媒体提要