python socket程式設計思路

2021-08-19 08:25:16 字數 3938 閱讀 5156

tcp服務端:

1 建立套接字,繫結套接字到本地ip與埠

# socket.socket(socket.af_inet,socket.sock_stream) , s.bind()

2 開始監聽連線                   #s.listen()

3 進入迴圈,不斷接受客戶端的連線請求              #s.accept()

4 然後接收傳來的資料,並傳送給對方資料         #s.recv() , s.sendall()

5 傳輸完畢後,關閉套接字                     #s.close()

tcp客戶端:

1 建立套接字,連線遠端位址

# socket.socket(socket.af_inet,socket.sock_stream) , s.connect()

2 連線後傳送資料和接收資料          # s.sendall(), s.recv()

3 傳輸完畢後,關閉套接字          #s.close()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

root@yangrong:/python# catday5-socket-server.py

#!/usr/bin/python

importsocket#socket模組

importcommands#執行系統命令模組

host='10.0.0.245'

port=50007

s=socket.socket(socket.af_inet,socket.sock_stream)#定義socket型別,網路通訊,tcp

s.bind((host,port))#套接字繫結的ip與埠

s.listen(1)#開始tcp監聽

while1:

conn,addr=s.accept()#接受tcp連線,並返回新的套接字與ip位址

print'connected by',addr#輸出客戶端的ip位址

while1:

data=conn.recv(1024)#把接收的資料例項化

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

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

conn.sendall('done.')

else:

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

conn.close()#關閉連線

1

2

3

4

5

6

7

8

9

10

11

12

13

root@yangrong:/python# catday5-socket-client.py

#!/usr/bin/python

importsocket

host='10.0.0.245'

port=50007

s=socket.socket(socket.af_inet,socket.sock_stream)#定義socket型別,網路通訊,tcp

s.connect((host,port))#要連線的ip與埠

while1:

cmd=raw_input("please input cmd:")#與人互動,輸入命令

s.sendall(cmd)#把命令傳送給對端

data=s.recv(1024)#把接收的資料定義為變數

printdata#輸出變數

s.close()#關閉連線

節選自

Python Socket 程式設計

client import socket,sys if name main 處理引數 argv sys.argv if len argv 3 or len argv 2 and argv 1 print useage argv 0 sys.exit 0 host argv 1 server ip位址...

python socket程式設計

python 編寫server的步驟 1.第一步是建立socket物件。呼叫socket建構函式。如 socket socket.socket family,type family引數代表位址家族,可為af inet或af unix。af inet家族包括internet位址,af unix家族用於...

python socket程式設計

客戶端 author lenovo fromsocketimport host localhost port 2157 bufsize 1024 addr host,port tcpclient socket af inet,sock stream tcpclient.connect addr wh...