socket 標識:
作業系統/程序管理套接字的標識:套接字描述符(socket descriptor),小整數
socket 建立:
訪問**:http 協議
# 匯入socket庫
import socket
# 建立乙個socket,af_inet 表示採用 ipv4 網路協議,sock_stream 表示 tcp 連線
s = socket.socket(socket.af_inet, socket.sock_stream)
# 建立連線,需指明埠號,web 服務埠預設為 80
# 傳送資料
# 接收資料
buffer =
while true:
# 每次最多接收1k位元組
d = s.recv(1024)
if d:
else:
break
data = b''.join(buffer)
# 關閉連線
s.close()
# 解析伺服器響應資料
header, html = data.split(b'\r\n\r\n', 1)
print(header.decode('utf-8'))
# 把接收的資料寫入檔案
f.write(html)
自定義連線:
# 匯入socket庫
import socket
# 建立乙個socket
s = socket.socket(socket.af_inet, socket.sock_stream)
# 建立連線
s.connect(('127.0.0.1', 5000))
# 接收歡迎訊息
print(s.recv(1024).decode('utf-8'))
for data in [b'python', b'c++', b'ai']:
# 傳送資料
s.send(data)
# 接受資料
print(s.recv(1024).decode('utf-8'))
# 傳送結束連線訊號
s.send(b'exit')
# 關閉連線
s.close()
# 匯入 socket 庫,threading 庫
import socket
import threading
import time
# 處理請求函式
def tcp_link(sock, addr):
print('accept new connection from %s:%s...' % addr)
sock.send(b'welcome!')
# 接收、傳送資料
while true:
data = sock.recv(1024)
time.sleep(1)
if not data or data.decode('utf-8') == 'exit':
break
sock.send(('hello, %s!' % data.decode('utf-8')).encode('utf-8'))
# 關閉連線
sock.close()
print('connection from %s:%s closed.' % addr)
# 建立乙個socket
s = socket.socket(socket.af_inet, socket.sock_stream)
# 繫結埠
s.bind(('127.0.0.1', 5000))
# 監聽埠,5表示最多同時監聽5個
s.listen(5)
print('waiting for connection...')
# 等待連線,處理連線
while true:
# 接受乙個新連線
sock, addr = s.accept()
# 建立新執行緒來處理tcp連線
t = threading.thread(target=tcp_link, args=(sock, addr))
t.start()
# 匯入socket庫:
import socket
# 建立乙個socket,sock_dgram 表示 udp 連線
s = socket.socket(socket.af_inet, socket.sock_dgram)
# 資料傳送與接收
for data in [b'python', b'c++', b'ai']:
# 傳送資料:
s.sendto(data, ('127.0.0.1', 5000))
# 接收資料:
print(s.recv(1024).decode('utf-8'))
# 關閉連線
s.close()
# 匯入socket庫:
import socket
import threading
# 處理請求函式
def udp_link(data, addr):
print('received from %s:%s.' % addr)
s.sendto(b'hello, %s!' % data, addr)
# 建立乙個socket
s = socket.socket(socket.af_inet, socket.sock_dgram)
# 繫結埠:
s.bind(('127.0.0.1', 5000))
print('bind udp on 5000...')
# 等待接收資料並處理
while true:
# 接收資料:
data, addr = s.recvfrom(1024)
t = threading.thread(target=udp_link, args=(data, addr))
t.start()
good luck! python 網路程式設計學習 套接字socket
以前也學過套接字程式設計,這次想系統全面的學習下python網路程式設計的使用。做這個,為檢測進度,也為後續留下筆記和足跡。socket 常用函式 socket.gethostname socket.gethostbyname import socket host socket.gethostnam...
Python網路程式設計學習筆記一 socket模組
coding utf 8 主要測試python網路程式設計中socket模組的使用 涉及到的技術點 套接字 面向連線的還有非面向連線套接字 tcp面向連線 udp非面向連線 1 匯入socket 2 建立socket socket三要素 1 socket family,2 socket type 3...
python網路程式設計 TCP網路程式設計
tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...