我正在通过一个简单的客户端-服务器示例来熟悉套接字和多线程。我在客户端有一个简单的 GUI,带有两个按钮——第一个生成一个 n 位大小的素数,第二个取消第一个的操作(因为制作 8000 位素数需要一些时间)。
当用户按下“生成”时,客户端将创建一个新线程。该线程创建了两个新线程,一个用于建立与服务器的连接,另一个不做任何事情,除非 GUI 请求“停止生成素数”。
服务器只是轮询连接。建立连接后,它会创建一个新线程来生成素数,然后将该素数返回给客户端。
这是我遇到概念问题的地方。如果我想在客户端实现“停止生成素数”按钮,我该怎么做?我最初的想法是使用第二个线程使用相同的套接字连接到服务器并告诉它“停止”。如何让服务器了解客户端请求的所有权?我怎样才能让服务器说“好的,客户端 A,我目前正在运行一个线程来创建一个大素数,但我现在看到您正在请求取消。” 如何让服务器对请求有归属感?