python -- socket

1、socket語法

sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)

參數一:socket.AF_INET (IPV4), socket.AF_INET6 (ipv6)

參數二:socket.SOCK_STREAM 流式socket, for TCP

              socket.SOCK_DGRAM  數據報文,for udp

              socket.SOCK_RAW   原始套接字,普通套接字無法處理imcp、igmp等報文,socket_raw可以;

              socket.SOCK_RDM 可靠的UDP形式,保證交付的數據報但不保證順序

              SOCKET.SOCK_SEQPACKET  可靠連續數據包服務

參數三:協議:

            默認爲0,系統自動根據地址格式和套接字類別自動選擇,也可以指定。

2、相關語法:

a、sk.bind(address):將套接字綁定到指定地址,address是IP+Port元組形式;
b、sk.listen(bakclog):開始監聽傳入的連接,在沒有拒絕連接前的最大連接數;
c、sk.setblocking(bool):默認爲True-阻塞,如果設置爲False,如果accept和recv沒有數據就會報錯
d、sk.accept():接受連接並返回conn,adress元組,其中conn爲套接字對象,可以用來發送和接受套接字數據;
e、sk.connect(addr):連接套接字
f、sk.connect_ex(addr):與connect類似,有返回值,成功爲0,如果失敗返回相應失敗碼
g、sk.close():關閉套接字
h、sk.recv(buffsize):接收套接字數據,返回字符串
i、sk.recvfrom(buffsize):與recv類似,返回字符串+地址
j、sk.send(string):將string發送到套接字,返回值是發送字節的數量,可能小於string,因爲可能尚未完全發送完成;
k、sk.sendall(string):將string全部發送至套接字,發送完成後再返回值
l、sk.sendto(string,address):將string發送至套接字,指定發送的客戶端地址,用於UDP數據報傳輸
m、sk.settimeout(timeout):設置套接字超時時間
n、sk.getpeername():返回套接字遠程連接地址
o、sk.getsockname():返回套接字本地地址
p、sk.fileno():返回套接字文件描述

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