[英]Connection refused error when using sockets between C# (server) and Java (Client) applications
[英]Java Sockets Connection refused error
我正在尝试使用套接字连接到服务器。 我在 Ubuntu 上使用 Intellij IDEA 和一个 JAVAFX 项目。 我目前正面临这个错误:
“引起:java.net.ConnectException:连接被拒绝”
此错误指向的代码是:
Socket serverSocket = new Socket("127.0.0.1", 8080);
ConnectionHandler handler = new ConnectionHandler(serverSocket);
String[] dirs = handler.receiveDirs();
System.out.println(dirs[0]);
如果有人可以帮助我并告诉我可能存在的问题,请让我知道任何可能的修复! 谢谢!
出现此错误的可能原因是:
安全措施检查:
您的本地主机的端口8080上没有任何要运行的套接字连接。 您可以在该端口上运行诸如Tomcat之类的服务器,然后一切正常。
这是一个独立的示例,该示例将服务器套接字设置为在本地运行(它所做的只是来自客户端的回显输入)。 输出将为“ hello,jewelsea”。
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class ConnectToServer {
public static void main(String[] args) throws IOException, InterruptedException {
// server code.
ServerSocket serverSocket = new ServerSocket(8082);
Thread serverThread = new Thread(() -> {
while(true) {
try {
Socket connection = serverSocket.accept();
try (
BufferedReader serverReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
Writer serverWriter = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
) {
serverWriter.write("hello, " + serverReader.readLine() + "\n");
serverWriter.flush();
}
} catch (IOException e) {
e.printStackTrace();
} catch (Throwable t) {
t.printStackTrace();
throw t;
}
}
});
serverThread.setDaemon(true);
serverThread.start();
// client code.
Socket clientSocket = new Socket("127.0.0.1", 8082);
try (
Writer clientWriter = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
BufferedReader clientReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
) {
clientWriter.write("jewelsea\n");
clientWriter.flush();
String response = clientReader.readLine();
System.out.println(response);
}
}
}
您可能不想直接使用套接字,而希望使用更高级的API,例如jax-rs 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.