gpt4 book ai didi

Java Socket 构造函数,Socket(String hostName,int port),挂起

转载 作者:IT王子 更新时间:2023-10-29 00:56:06 25 4
gpt4 key购买 nike

我正在尝试制作一个简单的客户端/服务器程序。我打开了一个 ServerSocket,但似乎无法使用我创建的客户端套接字连接到它。

一段时间以来,我一直在寻找答案 - 坦率地说,我什至不确定对于这个问题应该寻找什么。

这是客户端代码:

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

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

Socket s = null;


try{
System.out.println("connecting to host...");
s = new Socket("dagobah", 6464);
}catch (UnknownHostException e) {
System.err.println("Can't connect");
System.exit(1);
}
System.out.println("Connected to host");


s.close();
}

这是服务器代码:

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


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


ServerSocket serverSocket = null;
try{
serverSocket = new ServerSocket(6464);
}catch (IOException e){
System.err.println("fail to start server");
System.exit(1);
}
System.out.println("Server started : )");



Socket clientSocket = null;
try{
System.out.println("waiting for a client...");
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.out.println("fail can't accept client connection");
System.exit(-1);
}
System.out.println("client connected");


clientSocket.close();
serverSocket.close();
}

客户端永远不会通过 try block

客户端输出:连接到主机...

服务器输出:服务器启动:) 等待客户...

自发布此问题后,我了解到这是我的计算机特有的问题。我正在运行 Linux 2.6.38-11-generic x86_64 GNU/Linux Ubuntu Natty

我们将不胜感激任何帮助! :)

最佳答案

Socket 构造函数实际上并没有连接,但它确实尝试将主机名解析为 IP 地址。在这种情况下,名称解析似乎需要很长时间,最终会超时,并抛出 UnknownHostException。我听说这在 Windows 上可能需要几分钟时间。

dagobah 是如何解析的,是通过 DNS 还是?尝试使用 IP 地址而不是名称。

关于Java Socket 构造函数,Socket(String hostName,int port),挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9391385/

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