python-socket編程

來源:互聯網
上載者:User

標籤:recv   檔案系統   通訊端   檔案的   int   soc   封裝   code   檔案類型   

用戶端/伺服器架構,即C/S架構:

1.硬體C/S架構(印表機)

2.軟體C/S架構(web服務)

B/S架構屬於C/S架構的一種

socket就是為了C/S架構的開發,socket是應用程式層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。他把複雜的TCP/IP協議族隱藏在socket介面後面。讓socket去組織資料,以符合指定協議的標準。所以我們無需深入理解TCP/UDP/IP協議,socket已經為我們封裝好了,我們只去遵循socket的規定去編程,寫出的程式自然就是遵循TCP/UDP標準的。

IP與port的綁定標識了互連網中獨一無二的一個應用程式。而程式的pid是同一台機器上不同進程或線程的標識。

一開始,通訊端(socket)被設計在同一台主機上多個應用程式之間的通訊,這也被稱為進程間通訊,或IPC。通訊端有兩種(或者成為有兩個種族),分別是基於檔案型和基於網路型。

基於檔案類型的通訊端家族:通訊端家族的名字:AF_UNIX

unix一切皆檔案,基於檔案的通訊端調用的是底層的檔案系統來取資料,兩個通訊端進程運行在同一台機器,可以通過訪問同一個檔案系統間接完成通訊。

基於網路類型的通訊端家族:通訊端家族的名字:AF_INET

AF_INET6被用於ipv6,AF_INET是使用最廣泛的一個,用來網路編程。

import socketphone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.bind((‘127.0.0.1‘,8000))phone.listen(5)print("等待用戶端發來訊息:\n")conn,addr=phone.accept() #返回元組rec_msg=conn.recv(1024) #1024代表接收多少位元組資訊print(‘用戶端IP和port:‘,addr) #用戶端IP和port資訊print(‘用戶端發來的訊息是:‘,rec_msg.upper())send_msg=‘I AM SERVER‘conn.send(send_msg.encode(‘utf-8‘))conn.close() #關閉串連phone.close() #關閉socket
socket服務端
import socketphone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)phone.connect((‘127.0.0.1‘,8000)) #建立串連phone.send(‘I AM CLIENT‘.encode(‘utf-8‘)) #發送訊息data=phone.recv(1024)print(‘收到服務端返回的資訊‘,data)
socket用戶端

 

python-socket編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.