日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

socket认证客户端链接合法性

發(fā)布時(shí)間:2024/9/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 socket认证客户端链接合法性 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

服務(wù)器端:

1 #_*_coding:utf-8_*_ 2 __author__ = 'Linhaifeng' 3 from socket import * 4 import hmac,os 5 6 secret_key=b'linhaifeng bang bang bang' 7 def conn_auth(conn): 8 ''' 9 認(rèn)證客戶端鏈接 10 :param conn: 11 :return: 12 ''' 13 print('開(kāi)始驗(yàn)證新鏈接的合法性') 14 msg=os.urandom(32) 15 conn.sendall(msg) 16 h=hmac.new(secret_key,msg) 17 digest=h.digest() 18 respone=conn.recv(len(digest)) 19 return hmac.compare_digest(respone,digest) 20 21 def data_handler(conn,bufsize=1024): 22 if not conn_auth(conn): 23 print('該鏈接不合法,關(guān)閉') 24 conn.close() 25 return 26 print('鏈接合法,開(kāi)始通信') 27 while True: 28 data=conn.recv(bufsize) 29 if not data:break 30 conn.sendall(data.upper()) 31 32 def server_handler(ip_port,bufsize,backlog=5): 33 ''' 34 只處理鏈接 35 :param ip_port: 36 :return: 37 ''' 38 tcp_socket_server=socket(AF_INET,SOCK_STREAM) 39 tcp_socket_server.bind(ip_port) 40 tcp_socket_server.listen(backlog) 41 while True: 42 conn,addr=tcp_socket_server.accept() 43 print('新連接[%s:%s]' %(addr[0],addr[1])) 44 data_handler(conn,bufsize) 45 46 if __name__ == '__main__': 47 ip_port=('127.0.0.1',9999) 48 bufsize=1024 49 server_handler(ip_port,bufsize) View Code

客戶端:

1 #_*_coding:utf-8_*_ 2 __author__ = 'Linhaifeng' 3 from socket import * 4 import hmac,os 5 6 secret_key=b'linhaifeng bang bang bang' 7 def conn_auth(conn): 8 ''' 9 驗(yàn)證客戶端到服務(wù)器的鏈接 10 :param conn: 11 :return: 12 ''' 13 msg=conn.recv(32) 14 h=hmac.new(secret_key,msg) 15 digest=h.digest() 16 conn.sendall(digest) 17 18 def client_handler(ip_port,bufsize=1024): 19 tcp_socket_client=socket(AF_INET,SOCK_STREAM) 20 tcp_socket_client.connect(ip_port) 21 22 conn_auth(tcp_socket_client) 23 24 while True: 25 data=input('>>: ').strip() 26 if not data:continue 27 if data == 'quit':break 28 29 tcp_socket_client.sendall(data.encode('utf-8')) 30 respone=tcp_socket_client.recv(bufsize) 31 print(respone.decode('utf-8')) 32 tcp_socket_client.close() 33 34 if __name__ == '__main__': 35 ip_port=('127.0.0.1',9999) 36 bufsize=1024 37 client_handler(ip_port,bufsize) View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/sun-10387834/p/10804823.html

總結(jié)

以上是生活随笔為你收集整理的socket认证客户端链接合法性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。