在python環境中已經自帶了scoket庫,只需要簡單的幾行代碼便可以搭建scoket環境進行通信。
1.首先需要導入scoket包
import scoket
2.然后初始化scoket實例,scoket方法中有三個參數(地址簇,類型,協議)
init = scoket.scoket()
參數一:地址簇
socket.AF_INET IPv4(默認)
socket.AF_INET6 IPv6
socket.AF_UNIX 只能夠用于單一的Unix系統進程間通信
參數二:類型
socket.SOCK_STREAM 流式socket , for TCP (默認)
socket.SOCK_DGRAM 數據報式socket , for UDP
socket.SOCK_RAW 原始套接字,普通的套接字無法處理ICMP、IGMP等網絡報文,而SOCK_RAW可以;其次,SOCK_RAW也可以處理特殊的IPv4報文;此外,利用原始套接字,可以通過IP_HDRINCL套接字選項由用戶構造IP頭。
socket.SOCK_RDM 是一種可靠的UDP形式,即保證交付數據報但不保證順序。SOCK_RAM用來提供對原始協議的低級訪問,在需要執行某些特殊操作時使用,如發送ICMP報文。SOCK_RAM通常僅限于高級用戶或管理員運行的程序使用。
socket.SOCK_SEQPACKET 可靠的連續數據包服務
參數三:協議
0 ?。J)與特定的地址家族相關的協議,如果是 0 ,則系統就會根據地址格式和套接類別,自動選擇一個合適的協議
3.然后綁定ip地址和端口號 使用bind方法(默認應該都是自己的ip所以用localhost)
init.bind(('localhost',1234))
4.然后開始監聽連接,監聽方式是listen(非阻塞,需填寫最大鏈接個數)
init.listen(5)
5.然后使用accept()方法阻塞鏈接等待信息傳遞,返回(套接字對象,ip)
init.accept()
6.使用recv()接收數據,接收過來的數據是二進制所以還需要轉義
data = conn.recv(1024)
print(data.decode())
7.然后建立客戶端,1,2步相同,使用connect((ip,端口)),方法進行連接
init.connect(('localhost',1234))
8.發送信息send方法
init.send('hello'.encode('utf-8'))
此時scoket搭建完成,看一下測試情況




