Day42 socket程式設計

2021-09-13 15:45:45 字數 2450 閱讀 2650

1.socket程式設計的概念

2.socket( )類詳解

3.tcp伺服器端**實現

import socket

from pprint import pprint

# 建立tcp連線

socket_instance = socket.socket(socket.af_inet, socket.sock_stream)

socket_instance.bind(('127.0.0.1', 9000))

# 作業系統可以掛起的最大連線數,如果同一時間的連線數超過5,拒絕其他的連線

socket_instance.listen(5)

# 迴圈接收新的客戶端連線

while true:

# 接收客戶端的請求,且獲取新socket物件和客戶端資訊

new_socket, client_addr = socket_instance.accept()

# 迴圈接收已連線的客戶端傳送的資料

while true:

# 從快取區中讀取1024位元組資訊

data = new_socket.recv(1024).decode()

# 返回客戶端的一下資訊

pprint(data)

# 返回客戶端位址 ('127.0.0.1', 51978)

pprint(client_addr)

# 傳送資料

new_socket.sendall('server has received your msg'.encode())

4.tcp客戶端**實現
import socket

# 建立tcp連線

socket_instance = socket.socket(socket.af_inet, socket.sock_stream)

socket_instance.connect(('127.0.0.1', 9000))

while true:

cmd = input("請輸入您想說的話:")

socket_instance.send(cmd.encode())

data = socket_instance.recv(1024)

print(data)

5.udp伺服器端**實現
import socket

# 建立udp連線

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

socket_instance.bind(('127.0.0.1', 9000))

# 迴圈接收新的客戶端連線

while true:

# 接收客戶端的請求,且獲取新socket物件和客戶端資訊

data, client_addr = socket_instance.recvfrom(1024)

print(data.decode())

socket_instance.sendto('server has receive your data'.encode(), client_addr)

6.udp客戶端**實現
import socket

# 建立socket例項

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

while true:

data = input("請輸入您想說的話:")

socket_instance.sendto(data.encode(), ('127.0.0.1', 9000))

data, server_addr = socket_instance.recvfrom(1024)

print(data.decode())

7.伺服器端socket例項物件建立連線的方法有:

listen():開始監聽tcp傳入連線;

accept():接受tcp鏈結並返回(new_socket, address),其中new_socket是新的套接字物件,可以用來接收和傳送資料,address是鏈結客戶端的位址;

8.客戶端socket例項物件建立連線的方法有:

9.客戶端和伺服器端socket例項物件都有的方法:

10.tcp 和udp的區別有哪些

11.udp 伺服器端的實現步驟

12.udp客戶端的實現步驟

參考:

Day 27 socket程式設計

為什麼揮手需要四次 因為揮手過程中沒有資料產生 udp協議為什麼不安全 發完資料不等確認,然後就會把資料刪除 首先我們要知道socket是對傳輸層及以下 傳輸層,網路層,資料鏈層,物理層 的封裝,它是一組藉口,在設計模式中,socket其實就是乙個門面模式,他把複雜的tcp ip協議族隱藏在sock...

socket程式設計

一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...

Socket程式設計

對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...