主要是练习UNIX下socket的使用。
本实验传输层协议为TCP(对应实验1、2)。
- 客户端:客户端连接上服务端后,在命令行进行输入,回车后从服务端收到相同的消息。
- 服务端:要求实现并发,即可以连接多个客户端。
并发可以选择多线程与多进程,这里选择多进程。
本实验的传输层协议是UDP(对应实验3、4)。
- 客户端:从服务端获得当前的时间。
- 服务端:使用循环(循环无连接的服务器)
要求传输层协议为TCP(对应实验5)。 目标:
- 实现图片等二进制文件的传输
- ✔实现CS模式,即服务器对两个客户端的消息进行中转。(p2p➡CS)
- 制作成桌面程序,因为需要在Ubuntu下运行,所以选择跨平台的pyqt。(这个有时间做)
chat:聊天的两个客户端之间是有顺序的,即只能第一个客户端发了消息后第二个客户端回复,一直重复这个过程...因为read()
时程序会阻塞在那里。这种方式比较死板,和平时的聊天场景不太符合。
chat2:使用多线程,实现了两个客户端不限顺序地传递消息,类似于QQ上的聊天。具体的做法是服务端为两个聊天的客户端开启两个线程:一个线程用于接收客户端1的消息并转发给客户端2;另一个线程用于将客户端2的消息转发给客户端1。客户端也需要使用两个线程,一个线程用于接收消息,另一个线程用于发送消息。