Java 我的程序使用套接字进行通信。我无法在cmd中键入任何内容。即使我打字,它也不显示任何内容
我正在创建一个简单的客户机-服务器通信。但我无法在命令提示符中键入任何内容。 服务器代码 运行程序时,我无法在cmd中键入任何内容Java 我的程序使用套接字进行通信。我无法在cmd中键入任何内容。即使我打字,它也不显示任何内容,java,sockets,networking,client-server,Java,Sockets,Networking,Client Server,我正在创建一个简单的客户机-服务器通信。但我无法在命令提示符中键入任何内容。 服务器代码 运行程序时,我无法在cmd中键入任何内容 import java.net.*; import java.io.*; public class Tests { public static void main(String args[]) { try { ServerSocket server = new ServerSocket(3000); Socket c = server.accept()
import java.net.*;
import java.io.*;
public class Tests
{
public static void main(String args[])
{
try
{
ServerSocket server = new ServerSocket(3000);
Socket c = server.accept();
DataOutputStream out = new DataOutputStream(c.getOutputStream());
DataInputStream in = new DataInputStream(c.getInputStream());
DataInputStream console = new DataInputStream(System.in);
String input,output;
while (true)
{
input = in.readLine();
System.out.println("Client says: " + input);
output = console.readLine();
out.writeBytes(output+ '\n');
}
}
catch(IOException e)
{ System.out.println("IO Error in streams " + e); }
}
}
客户端代码
请帮帮我
import java.io.*;
import java.net.*;
public class Testc
{
public static void main(String[] args)
{
try
{
Socket client = new Socket("127.0.0.1", 3000);
DataOutputStream out = new DataOutputStream(client.getOutputStream());
DataInputStream in = new DataInputStream(client.getInputStream());
DataInputStream console = new DataInputStream(System.in);
System.out.println("Connected. Enter text:");
String input,output;
while (true)
{
input = in.readLine();
System.out.println("server says : "+ input);
output = console.readLine();
out.writeBytes(output + '\n');
}
}
catch (UnknownHostException e)
{ System.err.println("error"); }
catch (IOException e)
{ System.err.println("I/O error"); }
}
}
客户端和服务器都在等待.readLine()中的
,这是一个阻塞调用。因此,服务器正在等待来自客户端的输入,而客户端正在等待来自服务器的输入;因为他们都在等待输入,所以两人都不能提供输入。僵局你需要非常仔细地写下谁做了什么,按照什么顺序,然后相应地重写代码。翻译:使用线程,可能会有很多触手先吃掉你。