python網路程式設計 socket套接字

2022-05-29 03:36:16 字數 3502 閱讀 2307

本文目錄:

一、socket

二、tcp伺服器

三、tcp客戶端

四、udp伺服器

五、udp客戶端

六、聊天的客戶端

七、聊天的伺服器

學習網路程式設計 其實就是在學socket主要控制傳輸資料的方式

tcp的傳輸方式

優點:通過三次握手來與伺服器建立連線

可以保證資料的完整性

a機器給b機器傳送資料報 要求b機器必須立即返回乙個確認包

a機器會等待一段時間,如果超時還沒有收到確認,則重發資料

缺點:傳輸效率低

使用場景: 文字聊天,支付寶轉賬等,

udp傳輸方式:不需要建立連線,直接傳送

缺點: 不能保證資料的完整性

優點:傳輸效率比tcp高

"""python中的socket

在使用socket的時候使用者需要關心的是 ip位址,port埠, 傳輸協議tcp/udp,你要傳送的資料data

在寫網路程式設計的時候,必然是有兩台**,對應著客戶端和伺服器

使用socket來完成tcp通訊

應該先完成伺服器的**編寫

"""

import

socket

#1.建立乙個代表伺服器的socket物件

s =socket.socket()

#2.繫結埠號和ip位址

#127.0.0.1 表示當前這個電腦的ip

address = ("

127.0.0.1

",8080)

s.bind(address)

print("

伺服器已啟動!")

#3.開始監聽這個埠

#5表示 可以有5個處於半連線狀態的連線 指的不是最大連線數

s.listen(5)

print("

test")

#4.接受連線請求

#該函式是阻塞的 會卡主程式的執行,必須等到有乙個客戶端進來才會繼續執行

#返回元組 第乙個是代表客戶端的socket物件 第二客戶端的位址資訊

client,c_address =s.accept()

print("

有乙個連線已建立!")

print

(c_address)

#給客戶端傳送資料

#5.讀寫資料

#接受資料

res = client.recv(1024)

print

(res)

#6.關閉連線

#s.close()

import

socket

#1.建立客戶端的socket物件

c =socket.socket()

#2.指定伺服器的ip和port

server_address = ("

127.0.0.1

",8080)

#3.建立連線

c.connect(server_address)

#4.讀寫資料

#傳送資料到伺服器

c.send("

hello 我是客戶端!

".encode("

utf-8"))

#5.關閉連線

c.close()

import

socket

#1.建立socket物件

s = socket.socket(type=socket.sock_dgram)

#2.繫結埠和ip

s.bind(("

127.0.0.1

",10000))

while

true:

#3.接受資料

res = s.recv(1024)

print

(res)

while

true:

msg = input("

>>>:")

#需要獲取對方的ip和埠

#s.sendto(msg.encode("utf-8"), ("127.0.0.1", 10000))

#關閉資源

s.close()

import

socket

#1.建立socket物件

s = socket.socket(type=socket.sock_dgram)

#2.繫結埠和ip

s.bind(("

127.0.0.1

",10000))

while

true:

#3.接受資料

res = s.recv(1024)

print

(res)

while

true:

msg = input("

>>>:")

#需要獲取對方的ip和埠

#s.sendto(msg.encode("utf-8"), ("127.0.0.1", 10000))

#關閉資源

s.close()

import

socket

#1.建立socket物件

s = socket.socket(type=socket.sock_dgram)

#2.繫結埠和ip

s.bind(("

127.0.0.1

",10000))

while

true:

#3.接受資料

res = s.recv(1024)

print

(res)

while

true:

msg = input("

>>>:")

#需要獲取對方的ip和埠

#s.sendto(msg.encode("utf-8"), ("127.0.0.1", 10000))

#關閉資源

s.close()

import

socket

client =socket.socket()

client.connect((

"127.0.0.1

",65535))

while

true:

#傳送client.send(input("

>>>:

").encode("

utf-8"))

#接收data = client.recv(1024).decode("

utf-8")

print

(data)

if len(data) ==0:

client.close()

break

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...