陈秋艳,扬州热线棋牌中心,丙酮的价格
客户端是提供给 用户用的 —— 登陆验证
客户端是提供给 机器使用的
# 方式一: # server.py import os import hashlib import socket def get_md5(secret_key,randseq): md5 = hashlib.md5(secret_key) md5.update(randseq) res = md5.hexdigest() return res def chat(conn): while true: msg = conn.recv(1024).decode('utf-8') print(msg) conn.send(msg.upper().encode('utf-8')) sk = socket.socket() sk.bind(('127.0.0.1',9000)) sk.listen() secret_key = b'alexsb' while true: conn,addr = sk.accept() randseq = os.urandom(32) conn.send(randseq) md5code = get_md5(secret_key,randseq) ret = conn.recv(32).decode('utf-8') print(ret) if ret == md5code: print('是合法的客户端') chat(conn) else: print('不是合法的客户端') conn.close() sk.close() # client.py import hashlib import socket import time def get_md5(secret_key,randseq): md5 = hashlib.md5(secret_key) md5.update(randseq) res = md5.hexdigest() return res def chat(sk): while true: sk.send(b'hello') msg = sk.recv(1024).decode('utf-8') print(msg) time.sleep(0.5) sk = socket.socket() sk.connect(('127.0.0.1',9000)) secret_key = b'alexsb' randseq = sk.recv(32) md5code = get_md5(secret_key,randseq) sk.send(md5code.encode('utf-8')) chat(sk) sk.close()
# 方式二: # server.py import os import hmac import socket def get_hmac(secret_key,randseq): h = hmac.new(secret_key,randseq) res = h.digest() return res def chat(conn): while true: msg = conn.recv(1024).decode('utf-8') print(msg) conn.send(msg.upper().encode('utf-8')) sk = socket.socket() sk.bind(('127.0.0.1',9000)) sk.listen() secret_key = b'alexsb' while true: conn,addr = sk.accept() randseq = os.urandom(32) conn.send(randseq) hmaccode = get_hmac(secret_key,randseq) ret = conn.recv(16) print(ret) if ret == hmaccode: print('是合法的客户端') chat(conn) else: print('不是合法的客户端') conn.close() sk.close() # client.py import socket import time import hmac def get_hmac(secret_key,randseq): h = hmac.new(secret_key,randseq) res = h.digest() return res def chat(sk): while true: sk.send(b'hello') msg = sk.recv(1024).decode('utf-8') print(msg) time.sleep(0.5) sk = socket.socket() sk.connect(('127.0.0.1',9000)) secret_key = b'alexsb' randseq = sk.recv(32) hmaccode = get_hmac(secret_key,randseq) sk.send(hmaccode) chat(sk) sk.close()
socketserver模块 直接实现tcp协议可并发的server端
# server.py import socketserver class myserver(socketserver.baserequesthandler): def handle(self): # 自动触发了handle方法,并且self.request == conn msg = self.request.recv(1024).decode('utf-8') self.request.send('1'.encode('utf-8')) msg = self.request.recv(1024).decode('utf-8') self.request.send('2'.encode('utf-8')) msg = self.request.recv(1024).decode('utf-8') self.request.send('3'.encode('utf-8')) server = socketserver.threadingtcpserver(('127.0.0.1',9000),myserver) server.serve_forever() # client1.py import socket sk = socket.socket() sk.connect(('127.0.0.1',9000)) for i in range(3): sk.send(b'hello,yuan') msg = sk.recv(1024) print(msg) sk.close() # client2.py import socket sk = socket.socket() sk.connect(('127.0.0.1',9000)) for i in range(3): sk.send(b'hello,wusir') msg = sk.recv(1024) print(msg) sk.close()
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论