日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解pythonsocket

socket起源于Unix,而Unix/Linux基本哲學(xué)之一就是“一切皆文件”,對于文件用【打開】【讀寫】【關(guān)閉】模式來操作。socket就是該模式的一個(gè)實(shí)現(xiàn),socket即是一種特殊的文件,一些socket函數(shù)就是對其進(jìn)行的操作(讀/寫IO、打開、關(guān)閉)基本上,Socket 是任何一種計(jì)算機(jī)網(wǎng)絡(luò)通訊中最基礎(chǔ)的內(nèi)容。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專業(yè)提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站制作(企業(yè)站、自適應(yīng)網(wǎng)站建設(shè)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

1. 不同電腦上的進(jìn)程之間如何通信

首要解決的問題是如何唯一標(biāo)識一個(gè)進(jìn)程,否則通信無從談起!在1臺電腦上可以通過進(jìn)程號(PID)來唯一標(biāo)識一個(gè)進(jìn)程,但是在網(wǎng)絡(luò)中這是行不通的。 在網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)時(shí),由于TCP/IP的核心內(nèi)容被封裝在操作系統(tǒng)中,如果應(yīng)用程序要使用TCP/IP,可以通過系統(tǒng)提供的TCP/IP的編程接口來實(shí)現(xiàn)。在Windows環(huán)境下,網(wǎng)絡(luò)應(yīng)用程序編程接口稱作Windows Socket。為了支持用戶開發(fā)面向應(yīng)用的通信程序,大部分系統(tǒng)都提供了一組基于TCP或者UDP的應(yīng)用程序編程接口(API),該接口通常以一組函數(shù)的形式出現(xiàn),也稱為套接字(Socket)。 其實(shí)TCP/IP協(xié)議族已經(jīng)幫我們解決了這個(gè)問題,網(wǎng)絡(luò)層的“ip地址”可以唯一標(biāo)識網(wǎng)絡(luò)中的主機(jī),而傳輸層的“協(xié)議+端口”可以唯一標(biāo)識主機(jī)中的應(yīng)用進(jìn)程(進(jìn)程)。 這樣利用ip地址,協(xié)議,端口就可以標(biāo)識網(wǎng)絡(luò)的進(jìn)程了,網(wǎng)絡(luò)中的進(jìn)程通信就可以利用這個(gè)標(biāo)志與其它進(jìn)程進(jìn)行交互

注意:

  • 所謂
    進(jìn)程指的是:運(yùn)行的程序以及運(yùn)行時(shí)用到的資源這個(gè)整體稱之為進(jìn)程(在講解多任務(wù)編程時(shí)進(jìn)行詳細(xì)講解)
  • 所謂
    進(jìn)程間通信指的是:運(yùn)行的程序之間的數(shù)據(jù)共享
  • 后面課程中會(huì)詳細(xì)說到,像網(wǎng)絡(luò)層等知識,不要著急

2. 什么是socket

socket(簡稱 套接字) 是進(jìn)程間通信的一種方式,它與其他進(jìn)程間通信的一個(gè)主要不同是:

它能實(shí)現(xiàn)不同主機(jī)間的進(jìn)程間通信,我們網(wǎng)絡(luò)上各種各樣的服務(wù)大多都是基于 Socket 來完成通信的

例如我們每天瀏覽網(wǎng)頁、QQ 聊天、收發(fā) email 等等

3. 創(chuàng)建socket

在 Python 中 使用socket 模塊的函數(shù) socket 就可以完成:

import socket
socket.socket(AddressFamily, Type)

說明:

函數(shù) socket.socket 創(chuàng)建一個(gè) socket,該函數(shù)帶有兩個(gè)參數(shù):

  • Address Family:可以選擇 AF_INET(用于 Internet 進(jìn)程間通信) 或者 AF_UNIX(用于同一臺機(jī)器進(jìn)程間通信),實(shí)際工作中常用AF_INET
  • Type:套接字類型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 協(xié)議)或者 SOCK_DGRAM(數(shù)據(jù)報(bào)套接字,主要用于 UDP 協(xié)議)

創(chuàng)建一個(gè)tcp socket(tcp套接字)

import socket

# 創(chuàng)建tcp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# ...這里是使用套接字的功能(省略)...

# 不用的時(shí)候,關(guān)閉套接字
s.close()

創(chuàng)建一個(gè)udp socket(udp套接字)

import socket

# 創(chuàng)建udp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# ...這里是使用套接字的功能(省略)...

# 不用的時(shí)候,關(guān)閉套接字
s.close()

說明

  • 套接字使用流程 與 文件的使用流程很類似

    1. 創(chuàng)建套接字
    2. 使用套接字收/發(fā)數(shù)據(jù)
    3. 關(guān)閉套接字

文章標(biāo)題:詳解pythonsocket
標(biāo)題來源:http://m.5511xx.com/article/dhoiede.html