Python网络编程攻略(2-2)

匿名 (未验证) 提交于 2019-12-02 22:51:30

用select.select编写一个聊天服务器

代码如下:

#coding: utf-8

import select
import socket
import sys
import signal
import cPickle
import struct
import argparse
SERVER_HOST = 'localhost'
CHAT_SERVER_NAME = 'server'
# Some utilities
'''send函数定义通过cPicle.dumps()将需要发送的数据序列化,


receive函数即是send反向过程,先接收到打包后的长度,将其解包,然后再主机序列化,

def send(channel, *args):





def receive(channel):











'''聊天室服务器需要能做到:
1,记录连接数
2,记录连接的客户端地址以及名称映射 ,需要时返回名称地址
3,重用地址
4,检测键盘中断
5,处理输入及请求
先实现1,2,3,4点:'''
class ChatServer(object):


























































































'''
实现客户端类。主要处理输入与从server端返回消息的读取
'''
class ChatClient(object):

















































if __name__ == "__main__":














而后再开几个客户端,注意需要新开终端运行 python uchat.py --name=client1 --port=8800

注意端口一定要一致,name可以随意定

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!