python網路編程(六)

來源:互聯網
上載者:User

標籤:分享圖片   nbsp   connect   編程   coding   str   bubuko   color   連結   

tcp通訊模型

tcp伺服器

在程式中,如果想要完成一個tcp伺服器的功能,需要的流程如下:

  1. socket建立一個通訊端
  2. bind綁定ip和port
  3. listen使通訊端變為可以被動連結
  4. accept等待用戶端的連結
  5. recv/send接收發送資料

一個很簡單的tcp伺服器如下:

#coding=utf-8from socket import *# 建立sockettcpSerSocket = socket(AF_INET, SOCK_STREAM)# 綁定本地資訊address = (‘‘, 7788)tcpSerSocket.bind(address)# 使用socket建立的通訊端預設的屬性是主動的,使用listen將其變為被動的,這樣就可以接收別人的連結了tcpSerSocket.listen(5)# 如果有新的用戶端來連結的伺服器,那麼就產生一個新的通訊端專門為這個用戶端伺服器# newSocket用來為這個用戶端服務# tcpSerSocket就可以省下來專門等待其他新用戶端的連結newSocket, clientAddr = tcpSerSocket.accept()# 接收對方發送過來的資料,最大接收1024個位元組recvData = newSocket.recv(1024)print ‘接收到的資料為:‘,recvData# 發送一些資料到用戶端newSocket.send("thank you !")# 關閉為這個用戶端服務的通訊端,只要關閉了,就意味著為不能再為這個用戶端服務了,如果還需要服務,只能再次重新串連newSocket.close()# 關閉監聽通訊端,只要這個通訊端關閉了,就意味著整個程式不能再接收任何新的用戶端的串連tcpSerSocket.close()
tcp用戶端tcp用戶端構建流程

tcp的用戶端要比伺服器端簡單很多,如果說伺服器端是需要自己買手機、查手機卡、設定鈴聲、等待別人打電話流程的話,那麼用戶端就只需要找一個電話亭,拿起電話撥打即可,流程要少很多

範例程式碼:

#coding=utf-8from socket import *# 建立sockettcpClientSocket = socket(AF_INET, SOCK_STREAM)# 連結的伺服器serAddr = (‘192.168.1.102‘, 7788)tcpClientSocket.connect(serAddr)# 提示使用者輸入資料sendData = raw_input("請輸入要發送的資料:")tcpClientSocket.send(sendData)# 接收對方發送過來的資料,最大接收1024個位元組recvData = tcpClientSocket.recv(1024)print ‘接收到的資料為:‘,recvData# 關閉通訊端tcpClientSocket.close()

 

python網路編程(六)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.