SOCKET 编程实验报告——简单的聊天系统
摘要
首先简要介绍实现的聊天系统的文件组织,接着从服务器和用户程序两个部分介绍聊天
系统的具体设计,然后介绍相关的错误处理,最后说明该聊天系统还可继续改进的方面。
一、聊天系统简介
我选择的是参考题目四,简单的聊天系统,使用 Python3 编程,该聊天系统主要分为服
务器和用户程序两个部分:
服务器部分包含:
server.py 文件,该文件负责对接入的用户进行响应和通知操作。
用户程序部分包含:
login.py 文件,该文件实现了用户登录的界面;
main.py 文件,该文件表现了用户登录聊天系统的主界面,用户可以在主界面使用
聊天系统的各项功能。
chatting.py 文件,该文件表现了用户聊天时的窗口,用户在该窗口下进行聊天操作。
二、服务器部分
由于服务器需要不断地对客户端的连接进行监听,并同时对每个客户端的连接的消息进
行接收和处理,所以一个线程是不够的,这里用到了多线程库 threading。
多线程处理:
服务器的主进程会不断地接收客户端的连接请求,然后服务器为每个连接开辟一个对应
的线程来处理该连接的消息。
每个 socket 连接对应的线程会不断地尝试接收客户端发送来的消息,然后将接收到的
消息转发给该消息的所有目的客户端。
服务器如何转发该消息给其对应的所有目的客户端呢?首先,服务器为相互通信的各客
户端建立一个列表,当该列表中的某个客户端要与列表中的其他客户端通信时,服务器直接
遍历该列表,将信息转发给列表中所有的客户端。
协议的设计和解析如下:
socket 连接上传送的消息包含头部和数据两部分:头部有六个,分别表示数据长度
(DATALEN),日期(DATE),客户端(HOST),消息类型(TYPE),代理(AGENT),编码语言(LANGUAGE)。
评论0
最新资源