1. 程式人生 > >網絡編程——socket編程

網絡編程——socket編程

python 服務 -c mil OSI七層 html 調用接口 OS 服務端

一、C/S架構介紹

C/S架構 C:clint(客戶端軟件)
   S:server(服務端軟件)

  python程序員是應用開發程序員,開發的軟件都是應用軟件,應用軟件必須運行於操作系統之上,操作系統則運行於硬件上,應用軟件不能直接操作硬件,應用軟件對硬件的操作必須調用操作系統接口,由操作系統操作硬件。

客戶端軟件基於網絡發送消息給服務端軟件流程:
  1、客戶端軟件產生數據,存放於客戶端軟件的內存中,然後調用接口將自己內存中的數據發送/拷貝給操作系統內存
  2、客戶端操作系統收到數據後,按照客戶端軟件指定的協議、調用網卡發送數據
  3、網絡傳輸數據
  4、服務端軟件調用系統接口,想要將數據從操作系統內存拷貝到自己的內存中
  5、服務端操作系統受到4的指令後,使用與客戶端相同的協議,從網卡接收到數據,然後拷貝給服務端軟件

技術分享圖片

  假設我現在要寫一個程序,給另一臺計算機發數據,必須通過tcp/ip協議 ,但具體的實現過程是什麽呢?我應該怎麽操作才能把數據封裝成tcp/ip的包,又執行什麽指令才能把數據發到對端機器上呢?

  簡而言之,socket這個東東幹的事情,就是幫你把tcp/ip協議層的各種數據封裝啦、數據發送、接收等通過代碼已經給你封裝好了,你只需要調用幾行代碼,就可以給別的機器發消息了。

二、計算機網絡

  計算機之間的通信首先要有物理鏈接介質,比如網線,交換機,路由器等網絡設備。

  通信的線路建好之後,只是物理層面有了可以承載數據的介質,要想通信,還需要我們按照某種規則組織我們的數據,這樣對方在接收到數據後就可以按照相同的規則去解析出數據。

三、TCP/IP

  按照功能不同,人們將互聯網協議分為osi七層或tcp/ip五層或tcp/ip四層。

  http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label5

TCP/IP五層
  1、應用層:規定應用程序的數據格式。
  2、傳輸層:建立端口到端口的通信
  3、網絡層:引入一套新的地址用來區分不同的廣播域/子網,這套地址即網絡地址
  4、數據鏈路層:定義了電信號的分組方式
  5、物理層:主要是基於電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0

網絡編程——socket編程