python SOCKET編程基礎入門

一、UDP編程

1.客戶端Client:發起訪問的一方。

2.服務器端

3.server段編程

(1)建立socket,socket是負責具體通信的一個實例

(2)綁定,為創建的socket指派固定的端口和IP地址

(3)接受對方發送內容

(4)給對方發送反饋,此步驟為非必須步驟

4.Client端編程

(1)建立通信的socket

(2)發送內容到指定服務器

(3)接受服務器給定的反饋內容

5.模擬一下這個過程

(1)我們先建立一個服務器的函數

#服務器案例

import socket

​

#模擬服務器的函數

def serverFunc():

  #1.建立socket

  #socket.AF_INET:使用IPV4協議族

  #socket.SOCK_DGRAM:使用UDP通信

  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  #2.綁定ip和port

​

  #127.0.01:這個ip地址代表的是機器本身

  #7852:隨機指定的端口號

  #地址是一個tuple類型,(ip.port)

  addr = ("127.0.0.1",7852)

  sock.bind(addr)

​

  #接受對方消息

  #等待方式為死等,沒有其他可能性

  #recvfrom接受的返回值是一個元組,前一項表示數據,後一項表示地址

  #參數的含義是緩沖區大小

  #rst = sock.recvfrom(500)

  data,addr = sock.recvfrom(500)

​

  print(data)

  print(type(data))

​

  #發送過來的數據是bytes格式,必須通過解碼才能得到str格式內容

  #decode默認參數是utf8

  text = data.decode()

  print(type(text))

  print(text)

​

  #給對方反饋的消息

  rsp = "I am very hungry now"

​

  #發送的數據需要編程成bytes格式

  #默認時utf8

  data = rsp.encode()

  sock.sendto(data,addr)

  

if __name__ == "__main__":

  print("Start Server")

  serverFunc()

print("End Server")

(2)然後創建一個客戶端的函數

import socket

def clientFunc():

  sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

  text = "you are very cool"

​

  #發送的數據必須是bytes格式

  data = text.encode()

  #發送

  sock.sendto(data,("127.0.0.1",7852))

  data,addr =sock.recvfrom(200)

​

  data = data.decode()

  print(text)

​

if __name__ == "__main__":

  print("Start Client")

  clientFunc()

print("End Client")

(3)我們先啟動服務器端函數

出現如下圖像,它是創建瞭一個sock,然後自己綁定到127.0.0.1:7852,運行到sock.recvfrom(500)這裡死等客戶端發消息

(4)再啟動客戶端函數

出現如下發送編碼後的​text內容到服務器(127.0.0.1:7852),服務器成功接收後返回you are cool這句話。

(5)我們再看服務器的函數那裡

接受瞭bytes格式的字符串,並打印出來瞭,然後再解碼打印出來,最後把you are cool返回​客戶端。

(6)這裡有個地方沒有辦法:因為我們在一臺電腦上做的測試,所以相當於自言自語,​不如在兩臺電腦上進行試驗。​

二、源碼

D33_1_ServerProgramme.py

D33_2_ClientProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_1_ServerProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_2_ClientProgramme.py

以上就是python SOCKET編程基礎入門的詳細內容,更多關於python SOCKET編程的資料請關註WalkonNet其它相關文章!

推薦閱讀: