簡單描述:
建立服務器需要用到socket模塊,一般來說需要6個步驟:
1.用socket創建套接字,語法格式如下:
socket.socket([family, [type, [protocol]]])
family一般有三種類型,AF_UNIX(用于同一臺機器上的進程間通信),AF_INET(用于IPV4的TCP和UDP),AF_INET6(針對IPV6)
type有兩種類型,一種是針對面向連接的協議(如TCP),一種是針對面向非連接的協議(如UDP),分為SOCK_STREAM(流套接字)和SOCK_DGRAM(數據報文套接字)
prototol一般不指定
2.將socket綁定到指定端口,用socket.bind((host, port))
3.指定服務器最大連接數a,a至少為1,用socket.listen(a)
4.等待客戶請求一個連接,用connection, address=socket.accept(),服務器接受客戶端連接請求后,accept方法將返回一個新的連接套接字對象
connection和客戶端的ip地址address,后續服務器和客戶端的通信將依靠新的套接字connection
5.服務器和客戶端通過send和recv方法通信
6.傳輸結束,通過調用close方法關閉連接
具體代碼實現如下:
其中后續使用了線程的知識來處理新建立的套接字對象(TCP)連接,這里不做討論
?