Python學習 Socket 網絡編程

Socket簡介:

	Socket是進程通訊的一種方式,即調用這個網絡庫的一些API函數實現分佈在不同主機的相關進程之間的數據交換。Socket又稱"套接字",應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求,使主機間或者一臺計算機上的進程間可以通訊。
  1. IP地址:即依照TCP/IP協議分配給本地主機的網絡地址,兩個進程要通訊,任一進程首先要知道通訊對方的位置,即對方的IP。
  2. 端口號:用來辨別本地通訊進程,一個本地的進程在通訊時均會佔用一個端口號,不同的進程端口號不同,因此在通訊前必須要分配一個沒有被訪問的端口號。
  3. 連接:指兩個進程間的通訊鏈路。

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

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

實例(服務端和客戶端聊天)
我們使用 socket 模塊的 socket 函數來創建一個 socket 對象
先創建一個服務端

import socket
#創建服務套接字 serversocket
ss =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("創建服務套接字")
#服務套接字綁定主機,綁定端口號
ss.bind(("localhost",9999))
print("綁定端口和主機")
ss.listen(5)#限制訪問人數
print("開始等待客戶請求")
c=ss.accept();
print("某個客戶連接到我了")
while True:
    msg=c[0].recv(1024)
    print(msg.decode())

接下來我們寫一個簡單的客戶端實例連接到以上創建的服務。
客戶端

import socket
import sys
# 創建 socket 對象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# 獲取本地主機名
host = socket.gethostname()
# 設置端口好
port = 9999
# 連接服務,指定主機和端口
s.connect((host, port))
# 接收小於 1024 字節的數據
msg = s.recv(1024)
s.close()
print (msg.decode('utf-8'))

然後運行服務端文件和客戶端文件可以互相發送數據。

更多文章:點擊這裏

掃碼關注公衆號《後端開發ipoo》
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章