例項1:客戶端發小寫英文,伺服器端返回給客戶端大寫英文(僅支援一次接受傳送)
伺服器端:
#伺服器端(先於客戶端執行)客戶端:import socket
server=socket.socket()
server.bind(('localhost', 6969))#繫結要監聽的埠,只能接受乙個引數
server.listen()#監聽
print('我要開始等**了')
conn,addr=server.accept()#等**打進來 conn:連線標記 addr:對方的位址
#conn就是客戶端連過來而在伺服器端為其生成的乙個連線例項
print('conn:',conn)
print('addr:',addr)
print('**來了')
data=conn.recv(1024)#接受資料 資料大小最好<=8192 recv預設是阻塞的
print('recv',data)
conn.send(data.upper())#返回乙個值
server.close()
#客戶端例項2:重複接受與傳送(linux系統上操作最合適)import socket
client=socket.socket()#宣告協議(socket)型別,同時生成socket連線物件
client.connect(('localhost',6969))#連線,只能接受乙個引數
client.send(b'hello world')#傳送資料 注:python3中只能發byte型別,python2可以發字串,byte(位元組)型別
# 注:byte型別只能接受ascall碼資料型別
data=client.recv(1024)#接受伺服器端的返回,可以指定接受大小 這裡我指定的是1024個位元組
print('recv:',data)
# print('recv:',data.decode())#接受中文要這樣寫(英文也沒問題)
client.close()
伺服器端:
import socket客戶端:import os
sever=socket.socket()
sever.bind(('localhost',6969))
sever.listen(5)#5可以更換別的數字,這裡指的是可以掛起5個客戶端連線(非同步通訊時可以懂得),預設寫5個
print('我要開始等**了')
while true:
coon, addr = sever.accept()
print('coon:', coon)
print('addr:', addr)
while true:
data=coon.recv(10240)
print('recv',data)
if not data:
print('client has lost')
break
# res = os.popen(data).read() # 獲取執行結果,並執行命令(將socket模擬ssh客戶端)
# coon.send(res)#將send替換為sendall,表示迴圈傳送send
coon.send(data.upper())
sever.close()
import socketclient=socket.socket()
client.connect(('localhost',6969))
while true:
msg=input('>>:').strip()#注意傳送不了空的,所以要用if語句
if len(msg)==0:continue
client.send(msg.encode('utf-8'))
data=client.recv(1024)
print(data.decode())
client.close()
python網路 Python3 網路程式設計
python3 網路程式設計 python 提供了兩個級別訪問的網路服務。低階別的網路服務支援基本的 socket,它提供了標準的 bsd sockets api,可以訪問底層作業系統socket介面的全部方法。高階別的網路服務模組 socketserver,它提供了伺服器中心類,可以簡化網路伺服器...
Python網路程式設計00 網路基礎
在正式開始學習python網路程式設計之前,先來補充一點網路基礎知識。internet是在一些共享線路上傳送資料的。為了實現共享,tcp通過把你要傳送的資料流分解成很多小資訊包在internet傳輸,而這些資訊報到了接受者的地方會再次重新合成在一起。通過分成很小的資料報,internet鏈結就會用很...
Python3網路程式設計
python提供了2個級別的訪問翁羅服務 低階別的網路服務支援socket,他提供了標準的bsd sockets api,可以訪問底層作業系統socket介面的全部方法 高階別的網路服務模組socket server,他提供了伺服器中心類,可以簡化伺服器的開發 使用此函式建立套接字,語法 socke...