gpt4 book ai didi

java - 我遇到与本地主机相关的错误。我正在尝试实现多线程服务器客户端聊天服务器

转载 作者:行者123 更新时间:2023-12-01 05:10:10 24 4
gpt4 key购买 nike

这是我试图运行的代码,但我收到了有关 localhost 不可用的 IOException。

public class MultiThreadChatClient implements Runnable{

// Declaration section
// clientClient: the client socket
// os: the output stream
// is: the input stream

static Socket clientSocket = null;
static PrintStream os = null;
static DataInputStream is = null;
static BufferedReader inputLine = null;
static boolean closed = false;

public static void main(String[] args) {

// The default port

int port_number=5050;
String host="localhost";


// Initialization section:
// Try to open a socket on a given host and port
// Try to open input and output streams
try {
clientSocket = new Socket(host, port_number);
inputLine = new BufferedReader(new InputStreamReader(System.in));
os = new PrintStream(clientSocket.getOutputStream());
is = new DataInputStream(clientSocket.getInputStream());
} catch (UnknownHostException e) {
System.err.println("Don't know about host "+host);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to the host "+host);
}

// If everything has been initialized then we want to write some data
// to the socket we have opened a connection to on port port_number

if (clientSocket != null && os != null && is != null) {
try {

// Create a thread to read from the server

new Thread(new MultiThreadChatClient()).start();

while (!closed) {
os.println(inputLine.readLine());
}

// Clean up:
// close the output stream
// close the input stream
// close the socket

os.close();
is.close();
clientSocket.close();
} catch (IOException e) {
System.err.println("IOException: " + e);
}
}
}

public void run() {
String responseLine;

// Keep on reading from the socket till we receive the "Bye" from the server,
// once we received that then we want to break.
try{
while ((responseLine = is.readLine()) != null) {
System.out.println(responseLine);
if (responseLine.indexOf("*** Bye") != -1) break;
}
closed=true;
} catch (IOException e) {
System.err.println("IOException: " + e);
}
}
}

我得到的异常是:

Couldn't get I/O for the connection to the host localhost

最佳答案

该错误可能是由于没有服务器监听连接请求造成的。 先启动服务器程序,再启动客户端

或者也尝试一下:套接字构造函数需要第一个参数作为 InetAddress 而不是 String
您有使用 getByName(String) 方法将主机初始化为套接字对象。修改您的套接字构造函数如下:

clientSocket = new Socket(InetAddress.getByName(host), port_number);

关于java - 我遇到与本地主机相关的错误。我正在尝试实现多线程服务器客户端聊天服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130909/

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