相关疑难解决方法(0)

你怎么能让BufferedReader.readLine()不挂?

有没有办法让你BufferedReader.readLine()不挂?

我正在创建一个服务器:

  • 检查客户端是否已提供任何输入.
  • 如果没有,它会执行其他代码并最终循环回检查客户端的输入.

如何在不运行的情况下检查客户端是否已提供任何输入readLine()?如果我运行readLine(),线程将挂起,直到输入传递?

java bufferedreader

5
推荐指数
1
解决办法
1万
查看次数

BufferedReader readLine方法挂起并阻止程序

我正在尝试使用Java学习套接字,并且我成功地将数据发送到在我自己的机器上运行的ServerSocket.当我尝试使用readline从这个套接字读取时(所以我可以回显我自己发送的消息)我的程序挂起并且不会返回.

这是代码:

public static void main(String[] args) throws UnknownHostException, IOException {

    TCPClient cli = new TCPClient("127.0.0.1", "15000");
    try {
        cli.ostream.writeUTF("Teste");
        String echo = cli.istream.readLine(); //it hangs in this line
        System.out.println(echo);
    }
Run Code Online (Sandbox Code Playgroud)

TCPClient是我定义的类,所以我可以在我的homwework上使用swing之前在更简单的界面上测试我的程序.这是代码:

public class TCPClient {

public DataOutputStream ostream = null;
public BufferedReader istream = null;

public TCPClient(String host, String port) throws UnknownHostException {
    InetAddress ip = InetAddress.getByName(host);

    try {
        Socket socket = new Socket(host, Integer.parseInt(port));

        ostream = new DataOutputStream(socket.getOutputStream());
        istream = new BufferedReader(new InputStreamReader(socket.getInputStream()));


    } catch (IOException ex) { …
Run Code Online (Sandbox Code Playgroud)

java sockets

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×2

bufferedreader ×1

sockets ×1