簡單的python socket服務端 客戶端例子

2021-09-11 02:09:15 字數 1927 閱讀 4773

服務端:

#!/usr/bin/python3

import socket #socket模組

import subprocess #執行系統命令模組

host=

'127.0.0.1'

port=

50007

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

#定義socket型別,網路通訊,tcp

s.bind(

(host,port)

)#套接字繫結的ip與埠

s.listen(1)

#開始tcp監聽

while1:

try:

conn,addr=s.accept(

)#接受tcp連線,並返回新的套接字與ip位址

print

('connected by'

,addr)

#輸出客戶端的ip位址

while1:

data=conn.recv(

1024

)#把接收的資料例項化

cmd_status,cmd_result=subprocess.getstatusoutput(data)

#subprocess.getstatusoutput執行系統命令(即shell命令),返回兩個結果,第乙個是狀態,成功則為0,第二個是執行成功或失敗的輸出資訊

iflen

(cmd_result.strip())

==0:#如果輸出結果長度為0,則告訴客戶端完成。此用法針對於建立檔案或目錄,建立成功不會有輸出資訊

conn.sendall(

'done.'

.encode())

else

: conn.sendall(cmd_result.encode())

#否則就把結果發給對端(即客戶端)

except brokenpipeerror:

continue

except keyboardinterrupt:

break

try:

conn.close(

)#關閉連線

except nameerror:

#忽略未連線退出時造成的conn未定義錯誤

print

('\n'

)pass

客戶端:

#!/usr/bin/python3

import socket

host=

'127.0.0.1'

port=

50007

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

#定義socket型別,網路通訊,tcp

s.connect(

(host,port)

)#要連線的ip與埠

try:

while1:

cmd =

input

("please input cmd:"

).encode(

)#與人互動,輸入命令

s.sendall(cmd)

#把命令傳送給對端

data = s.recv(

1024

)#把接收的資料定義為變數

print

(data.decode())

#輸出變數

except keyboardinterrupt:

print

('\n'

) s.close(

)#關閉連線

簡單的python socket程式設計

最近寫點小東西,要用到socket伺服器和客戶端,用python實現起來非常的方便。貼點 首先 引用必要的包 import thread from socket import from time import ctime接下來定義埠號和位址 host port 8888 埠號 bufsize 200...

python socket 簡單程式設計

伺服器端 import socket s socket.socket host socket.gethostname port 1234 s.bind host,port s.listen 5 while true c,addr s.accept print got connection from ...

python socket簡單的c s示例

客戶端和服務端其實是對等的。只不過服務端是bind乙個位址,客服端是connect乙個位址。另外服務端需要呼叫listen 函式使得服務端可以接受連線請求。send,sendall,recv等等是兩邊都可以用的。下面是示例。server.py import socket s socket.socke...