用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可以随意定
文章来源: Python网络编程攻略(2-2)