Python學習筆記 六 網路通訊

2021-08-07 16:44:29 字數 3879 閱讀 7492

import requests

myparameter=

r = requests.get("",myparameter);

print r.content

form裡沒有資料了,都在data裡:

import requests

import json

mydata =

r = requests.post('',data=json.dumps(mydata))

print r.text

結果

, 

"data": ""

, "files": {},

"form": {},

"headers": ,

"json": ,

"origin": "***"

, "url": ""

}

這麼做資料在form裡

import requests

import json

mydata =

r = requests.post('',data=mydata)

print r.text

結果

, 

"data": ""

, "files": {},

"form": ,

"headers": ,

"json": null

, "origin": "***"

, "url": ""

}

#encoding=utf-8

import requests

import json,os

os.chdir("h:/pythonworkspace/image");

#讀檔案要用rb,r是讀,b是二進位制

myfile =

r = requests.post("",files=myfile)

print r.text

結果

轉換成了base64編碼

, 

"data": ""

, "files": ,

"form": {},

"headers": ,

"json": null

, "origin": "***"

, "url": ""

}

#encoding=utf-8

import requests

import json,os

url=''

user =

s = requests.session()

r = s.post(url,data=user)

print r.content

html = r.text

#獲取更多來訪者

vm = s.get('')

print vm.text

#encoding=utf-8

from socket import *

myhost = ''

myport = 801

#af_inet ipv4 protocol

#sock_stream top protocol

socketobj = socket(af_inet,sock_stream)

#bind 繫結的是乙個元組,用()括起來

socketobj.bind((myhost,myport))

socketobj.listen(128)

while true:

connection,address = socketobj.accept()

print

"connect by ", address

while true:

data = connection.recv(1024)

ifnot data:

break

connection.send('echo' + data)

connection.close()

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

from socketserver import tcpserver, baserequesthandler

import traceback

class

mybaserequesthandler

(baserequesthandler):

''' 從baserequesthandler繼承,並重寫handler方法

'''defhandle

(self):

while

true:

# 當客戶主動斷開連線,recv會丟擲異常

try:

data = self.request.recv(1024).strip()

print

"receive from (%r):%r" % (self.client_address, data)

self.request.sendall(data.upper())

except:

traceback.print_exc()

break

if __name__ == "__main__":

host = ""

port = 12346

addr = (host, port)

server = tcpserver(addr,mybaserequesthandler)

server.serve_forever()

說明

%r的理解:

%r展示原始資料,做debug比%s好。

例子

>>> print

'%s, %s'

%('one', 'two')one, two>>> print

'%r, %r'

%('one', 'two')'one', 'two'

from socketserver import threadingtcpserver,streamrequesthandler

import traceback

class

mystreamrequesthandler

(streamrequesthandler):

defhandle

(self):

while

true:

try:

data = self.rfile.readline().strip()

print

"receive from %r:%r" % (self.client_address,data)

self.wfile.write(data.upper())

except:

traceback.print_exc()

if __name__ == "__main__":

host=""

port=1313

addr = (host,port)

#threadigtcpserver從threadingmixin和tcpserver繼承

server = threadingtcpserver(addr,mystreamrequesthandler)

server.serve_forever()

1 網路通訊基礎 筆記

1.1.報文 資料頭部 資料載荷 尾部 頭部和尾部都是一些資訊段,注意很多報文是沒有尾部的!封裝的過程就是將資料載荷分別加上頭部和尾部,同理可以理解解封裝。1.2.閘道器 閘道器是一種網路裝置,不是一種特定的裝置型別。在採用不同體系結構或者協議的網路之間進行互通時,用於提供協議轉換 路由選擇 資料交...

七 網路通訊 面試

1.http是無狀態通訊,http的請求方式有哪些,可以自己定義新的請求方式麼。2.socket通訊,以及長連線,分包,連線異常斷開的處理。3.socket通訊模型的使用,aio和nio。4.socket框架netty的使用,以及nio的實現原理,為什麼是非同步非阻塞。5.同步和非同步,阻塞和非阻塞...

94 網路通訊之網路概述

從程序間通訊說起 最後一種程序間通訊,是用網路域套接字socket,本來就是用作程序間通訊的,兩台電腦的兩個程序間的通訊。一開始是同乙個電腦中的兩個程序間的通訊。後來可以擴充套件道不同電腦主機。注意資訊流 網路通訊是分層次的,最高是api,我們應用只管api的編寫,網絡卡是考慮硬體的問題,我們只關心...