利用socket模块
分别编写服务器文件和客户端文件
服务器负责接收来自客户端的
数据并转发给连接的其他客户端
接下来进行客户端的编写,客户端主要实现的功能:连接服务器套接字,进行数据输入和
数据接收
服务器作为中转站,其主要实现的功能有:建立能让客户端连接的套接字,接收客户端传入
的数据,将数据发送出去,代码如下:
from socket import *
from time import ctime
import select
class Server():
def __init__(self):
self.HOST = '' #服务器的主机名,置空时接收任何局域网内的链接
self.PORT = 21567 #端口号
self.BUFSIZ = 1024 #缓冲区
self.ADDR = (self.HOST,self.PORT)
def run_server(self):
tcpSerSock = socket(AF_INET,SOCK_STREAM)#建立服务器套接字
tcpSerSock.bind(self.ADDR) #将地址绑定到套接字上
tcpSerSock.listen(5)#最大监听数
input_cro = [tcpSerSock]#接收传入数据组
output_cro = [] #传出数据组
message_queues = {} #绑定用户端口队列
while input_cro:
readyInput,readyOutput,readyException=select.select(input_cro,output_cro,[])
#每次循环都会阻塞在这里,只有当有数据输入时才会执行