本文为了说明例子,用中文作为变量写在了程序里面,一般编程最好不要那么写
import socket
from threading import Thread
from multiprocessing import Process
#服务端的需求
#1.要有固定的IP和PORT,方便别人找上门来,指定我们提供服务
#2.24小时不间断提供服务
#3.能够支持并发
server =socket.socket()#不加参数默认TCP协议
server.bind(('127.0.0.1',8080))#绑定IP和端口,以此构成唯一标识
server.listen(5)#链接池内链接的最大数量
def 服务方式(conn):
# 通信循环
while True:
try:
data = conn.recv(1024)#能接收命令的最大大小为1024
# 针对mac linux 客户端断开链接后
if len(data) == 0: break
print(data.decode('utf-8'))
conn.send(data.upper())
except ConnectionResetError as e:
print(e)
break
conn.close()
# 链接循环
while True:
conn, addr = server.accept()#接待请求
# 叫其他线程/进程来服务客户
t = Thread(target=服务方式,args=(conn,))#多线程
t = Process(target=服务方式,args=(conn,))#多进程
t.start()