python socket模塊學習

python socket模塊學習:


1、socket:套接字。套接字基本上是兩個端點的程序之間的“信息通道”,用於描述IP地址和端口,

是一個信息鏈的句柄,應用程序通過“套接字”向網絡發出請求或者應答網絡請求。


套接字包括兩個:服務機套接字和客戶機套接字。在創建一個服務器套接字後,讓它等待連接。這樣

它就在某個網絡地址處(IP地址和一個端口號的組合)監聽,知道有客戶端套接字連接。連接完成後,

兩者就可以進行交互了。


2、python socket類的實例化的三個參數:

a、地址族(默認爲 socket.AF_INET)

b、流(默認爲 socket.SOCK_STREAM)

  或者數據報(默認爲 socket.SOCK_DGRAM)

c、使用的協議(默認爲0,使用默認值即可)


3、socket 運行或者使用流程:


服務器端:

a、創建套接字,綁定套接字到本地IP與端口

#socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)

#s.bind()  

bind()方法是將套接字綁定到地址,在AF_INET下,以元組(host,port)的形式表示地址。


b、開始監聽連接

#s.listen()    

listen(backlog)方法:開始監聽TCP傳入的連接,backlog指定在拒絕連接之前,操作系統可以掛起的

最大的連接數量。該值至少爲1,大部分應用程序設爲5就可以了。


c、進入循環,不斷接受客戶端的連接請求。

#s.accept()   接受TCP連接並返回(conn,address),其中conn是新的套接字對象,可以用來接收和發送數據。

address是連接客戶端的地址。


d、然後接受傳來的數據,併發送給對方數據

#s.recv()   s.sendall()

e、傳輸完畢後,關閉套接字

#s.close()


客戶端:

a、創建套接字,連接遠端地址

#socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)

#s.connect()

connect()方法:連接到address處的套接字。一般address的格式爲元組(hostname,port),如果連接出錯,

返回socket.error錯誤。


b、連接後發送數據和接收數據

#s.recv()   s.sendall()


c、傳輸完畢後,關閉套接字

#s.close()

server.py:

import socket
ip_port = ('127.0.0.1',9999)
sk=socket.socket()
sk.bind(ip_port)
sk.listen(5)

conn,address = sk.accept()
conn.send('hello word ')
conn.close()

client.py:

import socket

client = socket.socket()
ip_port = ('127.0.0.1',9999)

client.connect(ip_port)
data = client.recv(1024)
print data


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