python socket常用接口說明


一、服務端

1、創建socket對象

  socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)

  AF_INET:IPv4協議

  SOCK_STREAM: 字節流套接字

  返回值:非負整數,記為套接字表述符

 2、socket綁定地址

  socket.bind((host,port))

  把一個本地協議地址賦予一個套接字,這個地址不能是已被其他的socket綁定了的。

3、監聽

  socket.listen(5)

  使得socket可以接受連接。設置最大連接數為5,這個數值可以自行設置,最小值為0

4、接受連接

  conn,addr=socket.accept()

  接受一個連接,socket必須已經綁定了一個地址,並且正在監聽連接。

返回值是(conn,address),其中conn是一個新的socket對象,用於在這個連接上收發數據。address是綁定在這個socket連接的另一端的地址。

5、接收數據

  conn.recv(bufsize)

  從socket中接受數據,返回值接收的數據,數據類型是bytes對象。一次性接收到的最大數據量為bufsize。在網絡或者硬件不夠好的情況下,收到的數據量可能小於bufsize。

6、發送數據

  conn.send(bytes)

   發送數據到已連接到遠程地址的socket。返回值是已發送的字節數。返回值可能小於需要發送的字節數。應用程序負責將所有的數據發送出去,如果有些數據沒有被發送,應用程序需要把剩余的數據再次發送出去。

  conn.sendall(bytes)

  接口負責將數據全部發送到遠程地址的socket上。如果成功返回None,失敗則拋出異常。

二、客戶端

1、創建socket對象

  socket.socket(socket.AF_INET.socket.SOCK_STEAM)

  與服務端創建socket對象相同

2、socket.connect((host,port))

  通過地址連接到遠程的socket

3、接收數據

  socket.recv()

  同服務端的recv()

4、發送數據

  socket.send()

  同服務端的send()

  socket.sendall()

  同服務端的sendall()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM