UDP协议必须由客户端首先发送内容
UDP协议的聊天室服务器代码
import socket sk = socket.socket(type=socket.SOCK_DGRAM) #默认TCP协议,传参代表UDP sk.bind(("127.0.0.1",8888)) #127.0.0.1是一个回环地址,每一个电脑都有 dic = {"段sir":" 33[36m","傻子":" 33[33m"} while 1: s,addr = sk.recvfrom(1024) s1 = s.decode().split(":")[0].strip() print("receive:"+"%s%s" % (dic[s1],s.decode())+" 33[0m") ss = input("send:").encode() sk.sendto(ss,addr) conn.close() sk.close()
UDP协议的客户端代码
import socket sk = socket.socket(type=socket.SOCK_DGRAM) name = input("name:") while 1: s = input("send:") s = name+":"+ s sk.sendto(s.encode(), ("127.0.0.1", 8888)) ss, addr = sk.recvfrom(1024) print("receive:" + ss.decode()) sk.close
字体改变颜色
#格式: 设置颜色开始 : 33[显示方式;前景色;背景色m #说明: 前景色 背景色 颜色 --------------------------------------- 30 40 黑色 31 41 红色 32 42 绿色 33 43 黃色 34 44 蓝色 35 45 紫红色 36 46 青蓝色 37 47 白色 显示方式 意义 ------------------------- 0 终端默认设置 1 高亮显示 4 使用下划线 5 闪烁 7 反白显示 8 不可见 #例子: 33[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色--> 33[0m <!--采用终端默认设置,即取消颜色设置-->
自己写一个模块来取消代码中频繁的解码,编码
举例:UDP协议
服务器代码
import My_UDP #模块文件名为My_UDP
sk = My_UDP.MySocket()
sk.bind(('127.0.0.1',8080))
msg,addr = sk.my_recvfrom(1024)
print(msg)
sk.close()
客户端代码
import My_UDP
sk = My_UDP.MySocket()
sk.my_sendto('abcabc中国',('127.0.0.1',8080))
sk.close()
模块代码
import socket class MySocket(socket.socket):# 继承自 socket文件中的socket类,此时socket就是父类 def __init__(self,encoding='utf-8'): self.encoding = encoding super(MySocket, self).__init__(type=socket.SOCK_DGRAM)# 执行父类socket中的__init__方法 def my_sendto(self,msg,addr): return self.sendto(msg.encode(self.encoding),addr)# 调用父类中的sendto方法 def my_recvfrom(self,num): msg_r,addr = self.recvfrom(num)# 调用父类的recvfrom方法 return msg_r.decode(self.encoding),addr