import threading
from socket import *
users = []
def readprocess(cs, caddr):
while True:
receivebytes = cs.recv(1024)
if len(receivebytes) > 0:
receivedata = receivebytes.decode("utf-8")
# print(type(caddr))
print("收到%s from %s %d" % (receivedata, caddr[0], caddr[1]))
else:
break
def listenprocess(ss):
while True:
cs, caddr = ss.accept()
readsendthread = threading.Thread(target=readprocess, args=(cs, caddr))
readsendthread.start()
user = {"ip": caddr[0], "port": caddr[1], "socket": cs}
users.append(user)
print("当前用户%d" % len(users))
print(users)
if __name__ == "__main__":
ss = socket(AF_INET, SOCK_STREAM)
saddr = ('127.0.0.1', 8989)
ss.bind(saddr)
ss.listen(50)
listenthread = threading.Thread(target=listenprocess, args=(ss,))
listenthread.start()
while True:
sendstr = input("输入发送内容")
sendbytes = sendstr.encode("utf-8")
selectport = input("输入对方port")
for r in users:
if r["port"] == int(selectport):
r["socket"].send(sendbytes)