完成了上一个版本,我们会发现,根本聊不起来啊!

问题的关键在于,我们现在的程序,一次只能干一个事情,你让我等待输入了,我就不能好好输出了。

所以我们需要在此引入多线程的概念,多线程的概念,简单的来说,就是,我因为只有一个人,你让我去干一件事还可以,两件事我不行,那多加一个人,总可以干了。

那么阻塞呢,意思就是说:由于我干了这个,不能干那个,我们把这个现象叫做阻塞。

概念都理解了之后,我们知道了,只要多加一个线程就行了!

实现多线程有几种方法,具体来说,我们可以看一下这篇:

这个基本上和Java的差不多,Java是两种方法,一种继承类,一种继承接口。两种方法都可以,但又有所不同,Python中,我们使用threading,可扩展性更好。

问题不大,在线程内部作出处理也很简单,我们简单分成接受和发送两个线程。Server与Client相同,这里就不贴完整代码了,以Server为例。

这里我们大致的流程是,每次有一个握手,就新建一个线程,当然,这里暂时没有涉及到结束线程以及后续处理,是最简单的模型,也是非常容易崩溃的,我们将在之后进行改良。