我想连续向客户端发送数据,无论客户端是否正在使用数据。 我尝试了以下方式:
public class Ser {
public static void main(String[] args) {
int number,temp;
try {
ServerSocket s1 = new ServerSocket(1342);
Socket clientSocket = s1.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
number = 0;
while (number <= 100) {
Thread.sleep(1000);
System.out.println("here");
out.println(number);
number++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但上面的代码不起作用。 如何在Windows中将数据连续发送到端口?
答案 0 :(得分:1)
如果客户端不打算使用(读取)数据,则无法通过Socket
连续向客户端发送数据。 (
当我说“不可能”时......如果服务器无限期地无阻塞地发送,那么“管道”将需要能够缓冲无限大量的数据。这实施起来是不切实际的。
并且在实现某些内容时会遇到很大的问题,客户可以在不阅读数据的情况下跳过数据。怎么知道何时停止跳绳?
你可以使用数据报(例如UDP)和DatagramSocket
但是你有相反的问题。客户端可能无法接收所有已发送的数据。
我注意到您的问题的原始版本中存在错误,但我认为这是一个简单的拼写错误,并且不存在于您的实际代码中。