用Python寫網路程式設計

2021-08-21 18:28:34 字數 1911 閱讀 4020

網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket

所謂socket通常也稱作「套接字」,用於描述ip位址和埠,是乙個通訊鏈的控制代碼,應用程式通常通過「套接字」向網路發出請求或應答網路請求

socket起源於uinx,而unix/linux基本哲學之一就是「一切皆檔案」,都可以用「開啟open-->讀寫write/read-->關閉close」模式來操作,socket就是該模式的乙個實現,socket即是一種特殊的檔案,一些socket函式就是對其進行的操作(讀/寫 io,開啟,關閉)

socket的英文原義是「孔」或「插座」。作為bsd unix的程序通訊機制,取後一種意思。通常也稱作"套接字",用於描述ip位址和埠,是乙個通訊鏈的控制代碼,可以用來實現不同虛擬機器或不同計算機之間的通訊。在internet上的主機一般執行了多個服務軟體,同時提供幾種服務。每種服務都開啟乙個socket,並繫結到乙個埠上,不同的埠對應於不同的服務。socket正如其英文原義那樣,像乙個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有乙個編號,有的插座提供220伏交流電,有的提供110伏交流電,有的則提供有線電視節目。 客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務

例如:中國移動客服

對於移動來說:一直監聽乙個號碼10086,當有**進來後,就分配乙個客服和客戶去溝通並處理請求

對於使用者:需要知道10086這個號碼,並需要打**

# _*_ coding:utf-8 _*_

"""file:1.py

date:2018-07-25 4:54 pm

author: fatrat

desc:

"""import socket

# 1.建立socket物件

sk = socket.socket()

# 2.繫結埠和ip

ip_port = ('127.0.0.1', 9998)

sk.bind(ip_port)

# 3.最大連線數

sk.listen(5)

while true:

# 獲取客戶端的ip和埠號

conn, address = sk.accept()

# conn = result[0]

# address = result[1]

# print result

# print type(result)

conn.send('hello')

flag = true

while flag:

data = conn.recv(1024)

print data

if data == 'exit':

flag = false

conn.send('sb')

conn.close()

client

# _*_ coding:utf-8 _*_

"""file: client.py

date: 2018-07-25 4:35 pm

author: westos-dd

desc:

"""import socket

# 建立乙個socket物件

client = socket.socket()

# 建立連線

ip_port = ('127.0.0.1',9998)

client.connect(ip_port)

while true:

# 獲取資料

data = client.recv(1024)

print data

# 傳送資料

inp = raw_input('clent:')

client.send(inp)

if inp == 'exit':

break

python寫網路爬蟲

注 本文旨在練習正規表示式的簡單使用方法 usr bin evn python coding cp936 def gethtml url 定義gethtml 函式,用來獲取頁面源 page urllib.urlopen url urlopen 根據url來獲取頁面源 html page.read 從...

python 函式用寫 嗎 python如何寫函式

python函式的定義 定義函式,也就是建立乙個函式,可以理解為建立乙個具有某些用途的工具。定義函式需要用 def 關鍵字實現,具體的語法格式如下 def 函式名 形參列表 由零條到多條可執行語句組成的 塊 return 返回值 其中,用 括起來的為可選擇部分,即可以使用,也可以省略。此格式中,各部...

用Python寫批處理

import oscommand labelme json to dataset json os.system command 今天在製作使用經labelme標註過的json檔案資料來源的時候,使用到了這個例項,遇到了乙個問題,在command中,如果含有括號的話,切記要記得加引號 coding u...