python socket網路介面程式設計

2021-08-15 13:51:50 字數 2278 閱讀 8428

python可以呼叫socket模組進行tcp/udp處理。socket可以選擇不同的型別,亦即為unix執行緒處理的socket以及為tcp/ip協議提供給上層的處理介面。tcp/udp都是通過socket介面建立相應的socket物件,指示介面引數處理型別有sock_dgram和sock_stream的差別,udp是無連線的,而tcp是面向連線的,所以在處理中略有差別,tcp處理時需要通過listen介面來監聽是否有tcp的握手過程發生。

udp 伺服器及客戶端程式示例

服務端程式

#!/usr/bin/python3.6

import socket

buffer_size = 1024

target_addr = '' #表示為本地主機

target_port = 60000

target = (target_addr,target_port)

#af_inet表示為網路程式設計socket、sock_dgram選擇udp協議模式

ss = socket.socket(socket.af_inet,socket.sock_dgram)

ss.bind(target) #繫結對應的ip位址及埠號

while true:

data,addrrsv = ss.recvfrom(buffer_size)

if not data:

sys.exit(0)

else:

print(data)

ss.close()

客戶端程式

#!/usr/bin/python3.6

import socket

ss = socket.socket(socket.af_inet,socket.sock_dgram)

buffer_size = 1024

target_addr = 'ip address'

target_port = 60000

target = (target_addr,target_port)

while true:

aa = input('> ') #輸入相應資料

if not aa:

break

#需要為位元組型資料,將資料傳送給相應目標ip位址及埠號

ss.sendto(bytes(aa,'utf-8'),target)

data,addrrsv = ss.recvfrom(buffer_size)

if not data:

break

else:

print(data)

print(addrrsv)

ss.close()

tcp 服務端和客戶端程式示例

伺服器端程式

#!/usr/bin/python3.6

from socket import *

buffersize = 1024

#sock_stream選擇為tcp協議

s = socket(af_inet, sock_stream) # create tcp socket

s.bind(("",60000)) # bind to port 60000

s.listen() # start listening

while 1:

client,addr = s.accept() # wait for a connection 具有阻塞功能

print("got a connection from ", addr)

client.send(b'connect successfully')

aa = client.recv(buffersize)

print(aa)

client.close()

客戶端程式

#!/usr/bin/python3.6

from socket import *

buffersize = 1024

ss = socket(af_inet,sock_stream) # create tcp socket

ss.connect(("ip address",60000)) # connect to the server

tmp = ss.recv(buffersize) # receive up to 1024 bytes

print(tmp)

ss.send(b"feedback")

ss.close() # close connection

Python Socket 網路程式設計

socket 是程序間通訊的一種方式,它與其他程序間通訊的乙個主要不同是 它能實現不同主機間的程序間通訊,我們網路上各種各樣的服務大多都是基於 socket 來完成通訊的,例如我們每天瀏覽網頁 qq 聊天 收發 email 等等。要解決網路上兩台主機之間的程序通訊問題,首先要唯一標識該程序,在 tc...

python socket網路程式設計

s.getsockname 獲得本地機器的ip和埠號 埠號由作業系統隨機分配,每次都不一樣 17 print conneted to s.getpeername 獲得連線機器的ip和埠號 結果如下 creating socketdone looking up port number.80doneco...

Python socket網路程式設計

socket簡單介紹 author xuefeng ipconfig all 檢視ip位址與mac 物理 位址 import socket socket family 位址簇 socket.af unix 本機兩個程序之間進行通訊 socket.af inet ipv4 socket.af inet...