Python 客戶端 伺服器互動模板

2021-08-22 09:56:27 字數 1468 閱讀 6288

參考鏈結

比較簡單的乙個例子,不過還是記錄一下。

參考鏈結裡的我不知道為什麼我的執行不了,下面是經過一些改動後能在本地跑的例子。

1.server.py

import socket

import time

import threading

message=

def tcplink(sock,addr):

print('歡迎來自%s:%s的大佬'%addr)

sock.sendall('歡迎大佬!輸入任意字元與我聊天~輸入exit斷開連線。'.encode('utf-8'))

while true:

data = sock.recv(1024)

time.sleep(1)

if not data or data.decode('utf-8')=='exit':

break

sock.sendall(('dalao says:%s' % data.decode('utf-8')).encode('utf-8'))

sock.close()

print('來自%s:%s的大佬退遊了...'%addr)

s= socket.socket(socket.af_inet,socket.sock_stream)

s.bind(('127.0.0.1',3577))

s.listen(5)

print('waiting for connection...')

while true:

sock,addr=s.accept()

t =threading.thread(target=tcplink,args=(sock,addr))

t.start()

2.client.py

import socket

s=socket.socket(socket.af_inet,socket.sock_stream)

s.connect(('127.0.0.1',3577))

###welcome message###

data=s.recv(1024)

print(data.decode('utf-8'))

####

while true:

st = input("input:")

if not st or st=='exit':

break

s.sendall(st.encode('utf-8'))

data=s.recv(1024)

print('伺服器大佬說:'+data.decode('utf-8'))

s.close()

同時執行兩個py指令碼,可實現資訊的互動。

但是有個問題,就是recv()只能接收1024資料,至於怎麼終止recv(),套入「while true break」裡面會卡在recv()處。目前還不是很清楚原因。

客戶端和伺服器資料互動

客戶端一次把資料取出,還是分多次來取?有的人說把資料一次從資料庫取到客戶端然後在客戶端任意處理效率會高。有的人說把一次性把所有資料取到客戶端很耗時且資料大多沒有用處最好分次處理。其實這兩個說法並不矛盾,只是他們實用的方面是不同的。如果資料最不大,但是可能會和伺服器發生多次互動,最好一次把資料取出到客...

客戶端與伺服器介面的互動。

上面的 是設定與伺服器連線的,包括連線伺服器的方法,以及傳輸資料的格式,可編碼方式等。下面的 是處理伺服器的返回值的。try if a00000 equals resjson.get code else resultcode resjson.get code catch classcastexcep...

客戶端伺服器 互動資料加密 RSA AES

最近開始搭建伺服器框架,在資料互動的時候看了下各種加密方式,複雜點的看到了這個rsa aes 簡單講,如果是一般遊戲,使用這個太大材小用,並且在高頻率互動的情況下,加密解密也會影響效能 我大概整理了個流程 1.服務端生成rsa 公鑰與私鑰 私鑰給服務端使用 公鑰給客戶端使用 2.客戶端在每次請求時做...