gpt4 book ai didi

java - 套接字 : could not connect to server or specific port

转载 作者:行者123 更新时间:2023-12-01 18:58:08 25 4
gpt4 key购买 nike

我正在尝试通过端口和主机名连接服务器。
我找到一个程序,但当我尝试运行时,它将显示以下异常

java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:208)
at sample.Echoclient2.main(Echoclient2.java:31)
Couldn't get I/O for the connection to: 127.0.0.1
Java Result: 1

这是我使用的代码。

public class Echoclient2 {
public static void main(String[] args) throws IOException {

String serverHostname = new String ("127.0.0.1");

if (args.length > 0)
serverHostname = args[0];
System.out.println ("Attemping to connect to host " +
serverHostname + " on port 10008.");



Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;

try {
echoSocket = new Socket(serverHostname, 10008);
System.out.println("server name"+Inet4Address.getByName(serverHostname));
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
System.out.println("Connection accepted " +
echoSocket.getInetAddress() + ":" +
echoSocket.getPort());
} catch (UnknownHostException e) {
e.printStackTrace();
System.err.println("Don't know about host: " + serverHostname);
System.exit(1);
} catch (IOException e) {
e.printStackTrace();
System.err.println("Couldn't get I/O for "
+ "the connection to: " + serverHostname);
System.exit(1);
}

BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;

System.out.println ("Type Message (\"Bye.\" to quit)");
while ((userInput = stdIn.readLine()) != null)
{
out.println(userInput);

// end loop
if (userInput.equals("Bye."))
break;

System.out.println("echo: " + in.readLine());
}

out.close();
in.close();
stdIn.close();
echoSocket.close();
}

}

我需要什么:
1.我需要向服务器发送一些消息并希望得到服务器的响应。假设我发送“我是 stackoverflow 的用户”,那么服务器应该给出任何响应,例如返回相同的字符串或转换为大写或其他内容。

一些问题:
1.我写的是客户端Java文件,但是否需要写服务器端Java文件。
2. 是否可以使用ip和端口发送请求。
3.我们可以使用主机名吗。
4. 有回显服务器名称吗?我需要向该服务器发送消息想知道响应。
5. 我尝试了 server,java 和 client.java 然后我得到了结果?这个解决方案适合我吗?

最佳答案

1. I write client Java File but whether i need to write server java file.

是的,您要么需要编写自己的服务器(如果服务器应该满足一些独特的要求),要么连接到现有的服务器。消息“连接被拒绝”表示您尝试连接的端口没有运行任何服务器。

2. Can we send request by using ip and port.

是的。

3. Can we use host name.

是的。您需要 IP 或主机名以及端口。

4. Any echo server name? i need to send message to this server want to know response.

您可以在您的计算机上设置一个回显服务器,以便您可以首先专注于对客户端进行编码。有一个Standard Echo server在端口 7 处定义。安装取决于您的操作系统环境 - 在 Ubuntu Linux 上,我必须安装 xinetd打包并启用 /etc/xinetd.d/echo 中的 echo 服务器。然后,您可以使用 telnet 验证服务器是否正在运行。程序:

andreas@ubuntu:~$ telnet localhost 7
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Hello
Hello

使用 telnet 连接到任何端口也是验证服务器是否正在运行且可访问的常用技术。根据您问题中的示例,您可以检查 telnet 127.0.0.1 10008服务器是否在您指定的端口上运行 - 您将得到相同的 connetion refused如果没有可用的服务器,则从您的 Java 程序开始。

5. I try both server,java and client.java then i got result? is this solution for me.

不确定您指的是哪个服务器和客户端。

<小时/>

一些额外的引用:

关于java - 套接字 : could not connect to server or specific port,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284184/

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