日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python网络编程爬虫_Python爬虫--网络编程

發布時間:2024/1/23 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python网络编程爬虫_Python爬虫--网络编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 網絡編程

Python提供兩個基本的Socket模塊:

Socket,提供了標準的BSD Sockets API

SocketServer, 提供了服務器中心類,可以簡化網絡服務器的開發

1、Socket類型

套接字格式為: socket(family, type[,protocall]),使用給定的地址族、套接字類型、協議類型(默認為0)創建套接字。

2、Socket函數

TCP編程

服務端

創建Socket,綁定Socket到本地IP和端口

開始監聽連接

進入循環,不斷接收客戶端的連接請求

接收傳來的數據,并發送給對方數據、

傳輸完畢后,關閉Socket

# coding=utf8

"""

1. 創建Socket,綁定Socket到本地IP和端口

2. 開始監聽連接

3. 進入循環,不斷接收客戶端的連接請求

4. 接收傳來的數據,并發送給對方數據

5. 傳輸完畢后,關閉Socket

"""

import socket

import threading

import time

def dealClient(sock, addr):

# 4. 接收傳來的數據,并發送給對方數據

print 'Accept new connection from %s:%s...' % addr

sock.send(b'Hello, I am server!')

while True:

data = sock.recv(1024)

time.sleep(1)

if not data or data.decode('utf-8') == 'exit':

break

print '-->>%s!' % data.decode('utf-8')

sock.send('Loop_Msg: %s!' % data.decode('utf-8').encode('utf-8'))

# 5. 傳輸完畢后,關閉Socket

sock.close()

print 'Connection from %s:%s closed.' % addr

if __name__ == '__main__':

# 1. 創建Socket,綁定Socket到本地IP和端口

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('127.0.0.1',9999))

# 2. 開始監聽連接

s.listen(5) # listen(n)傳入的值, n表示的是服務器拒絕(超過限制數量的)連接之前,操作系統可以掛起的最大連接數量。n也可以看作是"排隊的數量"

print 'Waiting for connection...'

# 3. 進入循環,不斷接收客戶端的連接請求

while True:

sock, addr = s.accept()

t = threading.Thread(target=dealClient, args=(sock, addr))

t.start()

客戶端

創建Socket,連接遠端地址

連接后發送數據和接收數據

傳輸完畢后,關閉Socket

# coding=utf8

"""

1. 創建Socket,連接遠端地址

2. 連接后發送數據和接收數據

3. 傳輸完畢后,關閉Socket

"""

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('127.0.0.1', 9999))

print '-->>'+s.recv(1024).decode('utf-8')

s.send(b'Hello I am a client')

print '-->>'+s.recv(1024).decode('utf-8')

s.send(b'exit')

s.close()

UDP 編程

服務端

創建Socket,綁定指定的IP和端口

直接發送數據和接收數據

關閉Socket

# coding=utf8

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.bind(('127.0.0.1',9999))

print 'Bind UDP on 9999...'

while True:

data, addr = s.recvfrom(1024)

print 'Received from %s:%s' % addr

s.sendto(b'Hello, %s!' % data, addr)

客戶端

與TCP不同,UDP客戶端不需要建立連接,創建Socket后可以直接后服務端進行數據交換

# coding=utf8

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

for data in [b'Hello',b'World']:

s.sendto(data,('127.0.0.1',9999))

print s.recv(1024).decode('utf-8')

s.close()

總結

以上是生活随笔為你收集整理的python网络编程爬虫_Python爬虫--网络编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。