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":"\033[36m","傻子":"\033[33m"}
while 1:
s,addr = sk.recvfrom(1024)
s1 = s.decode().split(":")[0].strip()
print("receive:"+"%s%s" % (dic[s1],s.decode())+"\033[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
字体改变颜色
#格式:
设置颜色开始 :\033[显示方式;前景色;背景色m
#说明:
前景色 背景色 颜色
---------------------------------------
30 40 黑色
31 41 红色
32 42 绿色
33 43 黃色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
显示方式 意义
-------------------------
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
#例子:
\033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色-->
\033[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