gpt4 book ai didi

Java 网络问题 : java.net.ConnectException:连接被拒绝:连接

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:37 25 4
gpt4 key购买 nike

当我运行一个简单的网络程序时,我无法在 Java 中进行任何网络连接,即使使用本地主机,我也无法建立连接,错误:

java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(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 EchoClient.main(EchoClient.java:8)

这是程序:

import java.io.*;
import java.net.*;
import java.util.*;

public class EchoClient{
public static void main(String[] args) {
try{
Socket client = new Socket(InetAddress.getLocalHost(), 1234);
InputStream clientIn = client.getInputStream();
OutputStream clientOut = client.getOutputStream();
PrintWriter pw = new PrintWriter(clientOut);
BufferedReader br = new BufferedReader(new InputStreamReader(clientIn));
Scanner stdIn = new Scanner(System.in);
System.out.println("Input Message:");
pw.println(stdIn.nextLine());
System.out.println("Recieved Message:");
System.out.println(br.readLine());
pw.close();
br.close();
client.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

我使用的是 Windows 7,我已经关闭了 Windows 防火墙,而且我没有安装防病毒软件。

最佳答案

正如我在评论中所写,检查服务器(类似于 EchoServer?)是否已启动并正在运行。


但是连接成功后还有其他问题。 pw.println(stdIn.nextLine()); 可能不会将内容发送到服务器,你需要做一个 pw.flush(); 才能真正发送内容或者您可以创建具有自动刷新功能的 PrintWriter:

 pw = new PrintWriter(clientOut, true);

如果您需要一个EchoServer,我刚刚写了一个与您的客户端一起工作的,如果您添加我上面描述的flushing:

public class EchoServer {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(1234);

while (true) {
// accept the connection
Socket s = ss.accept();

try {
Scanner in = new Scanner(s.getInputStream());
PrintWriter out = new PrintWriter(s.getOutputStream(), true);

// read a line from the client and echo it back
String line;
while ((line = in.nextLine()) != null)
out.println(line);

} catch (Exception e) {
e.printStackTrace();
} finally {
s.close();
}
}
}
}

你可以用 telnet localhost 1234 试试。

关于Java 网络问题 : java.net.ConnectException:连接被拒绝:连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5013764/

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