python socket模塊學習

python socket模塊學習:python


一、socket:套接字。套接字基本上是兩個端點的程序之間的「信息通道」,用於描述IP地址和端口,服務器

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


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

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

二者就能夠進行交互了。ide


二、python socket類的實例化的三個參數:學習

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

b、流(默認爲 socket.SOCK_STREAM)操作系統

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

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


三、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
相關文章
相關標籤/搜索