一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python網絡編程 Python套接字編程

Python網絡編程 Python套接字編程

2020-12-08 00:15Lockeyi Python

這篇文章主要為大家詳細介紹了Python網絡編程的相關資料,Python套接字編程,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Python 提供了兩個級別訪問的網絡服務。

低級別的網絡服務支持基本的 Socket,它提供了標準的 BSD Sockets API,可以訪問底層操作系統Socket接口的全部方法。
高級別的網絡服務模塊 SocketServer, 它提供了服務器中心類,可以簡化網絡服務器的開發。

什么是 Socket?

Socket又稱”套接字”,應用程序通常通過”套接字”向網絡發出請求或者應答網絡請求,使主機間或者一臺計算機上的進程間可以通訊。

socket()函數

Python 中,我們用 socket()函數來創建套接字,語法格式如下:

socket.socket([family[, type[, proto]]])

參數

family: 套接字家族可以使AF_UNIX或者AF_INET
type: 套接字類型可以根據是面向連接的還是非連接分為SOCK_STREAM或SOCK_DGRAM
protocol: 一般不填默認為0.

socket實現服務端與客戶端的簡單通信(模擬ssh的部分功能以及自動應答)

server端的簡單程序示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
#coding:utf-8
'''
file:server.py
date:9/8/17 3:43 PM
author:lockey
desc:socket編程服務器端,python3.6.2
'''
import re
import socket,time,os
s = socket.socket()   # 創建 socket 對象
host = '127.0.0.1'#socket.gethostname() # 獲取本地主機名
port = 9999    # 設置端口
s.bind((host, port))  # 綁定端口
s.listen(5)     # 等待客戶端連接
while True:
 conn, addr = s.accept()  # 建立客戶端連接。
 print('conneted address:'.decode('utf-8'), addr)#顯示連接到服務器的客戶端的地址
 while True:
  data = conn.recv(1024)
  #接收到的客戶端的請求或者返回
  if not data:
  #當返回信息為空或者請求為空時斷開客戶端連接
   print('Connection closed!')
   break;
 data = data.decode('utf-8')
 #以下前三個條件都是設置的自動檢測應答,最后一個是根據輸入的內容進行的命令執行,并將結果返回給客戶端
  if re.findall(r'who',data):
   reply = 'I am lockey'.encode('utf-8')
  elif re.findall(r'gender',data):
   reply = 'A boy'.encode('utf-8')
  elif re.findall(r'age',data):
   reply = '23'.encode('utf-8')
  else:
   print('execute com:',data)
   cmd_res = os.popen(data).read()
   if not cmd_res:
   #對于命令的執行如果沒有返回值的話就給客戶端發送一條信息
    conn.send('No response'.encode('utf-8'))
    continue
   reply = cmd_res.encode('utf-8')
 conn.send(reply)
 #將結果發送給客戶端

client端的簡單實現:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python
#coding:utf-8
'''
file:client.py
date:9/8/17 3:43 PM
author:lockey
desc:socket編程客戶端,python3.6.2
'''
import socket,time    # 導入 socket 模塊
 
s = socket.socket()   # 創建 socket 對象
host = '127.0.0.1'#socket.gethostname() # 獲取本地主機名
port = 9999    # 設置端口好
 
s.connect((host, port))
while True:
 cmd = input("lockey#")
 #用戶輸入
 if len(cmd) == 0:continue
 #如果用戶未輸入內容則繼續下一次輸入
 s.send(cmd.encode('utf-8'))
 #將用戶輸入的內容發送給客戶端等待結果
 result = s.recv(1024)
 if not result:
 #如果服務端沒有返回結果則繼續下一次輸入
  continue
 print(result.decode('utf-8'))
 #如果服務端有返回則打印結果
s.close()
#用戶終止程序時關閉連接

服務器端運行結果

Python網絡編程 Python套接字編程

客戶端運行截圖

Python網絡編程 Python套接字編程

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/Lockey23/article/details/77914222

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 春意影院午夜爽爽爽免费 | 天天躁天天碰天天看 | 青青草原网 | 亚洲国产精品无码中文字满 | 猫咪maomiav永久网址 | 2019亚洲男人天堂 | 大乳一级一区二区三区 | 日韩亚洲人成在线 | 2021国产麻豆剧传媒新片 | 无码AV精品一区二区三区 | 亚洲国产成人99精品激情在线 | 成人丁香乱小说 | 91制片厂制作传媒破解版免费 | 美女撒尿无遮挡免费中国 | 暖暖 免费 高清 中文 日本 | 国产精品四虎在线观看免费 | 色老板视频在线 | 国产一区二区三区丶四区 | 91精品国产综合久久消防器材 | 欧美大美bbb和大白屁股 | 天莱男模gary | 日本黄色一区 | 国产青草视频在线观看免费影院 | 99久久精品无码一区二区毛片 | 国模孕妇季玥337p人体 | 青青精品 | 成人私人影院www片免费高清 | 舔到喷水| 九九九九在线视频播放 | 亚洲欧美另类专区 | 三级小说网站 | 好大好硬好紧太深了受不了 | 欧美日韩一区二区三区在线观看 | 99色在线播放 | 卫生间被教官做好爽HH视频 | 国产乱叫456在线 | 亚洲精品国产自在现线最新 | 精品国产一区二区三区久久久蜜臀 | 99久久免费国产精品热 | 91久久精品视频 | 亚洲 欧美 在线观看 |