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

歡迎訪問 生活随笔!

生活随笔

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

python

python网络编程—Socket

發布時間:2025/3/21 python 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python网络编程—Socket 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Socket是什么?

socket:簡稱套接字,是進程間通訊的一種方式,他與其他進程間通訊的一個主要不同是:它能實現不同主機間進程間通訊,我們網絡上各種各樣的服務大多是基于Socket來完成通訊的,例如我們每天瀏覽網頁、QQ聊天等等。
基于文件和面向網絡

二、網絡中進程如何通信?

1、首要解決的問題是如何標識一個唯一的進程,否則通信無從談起!
2、在本地可以通過進程PID來唯一標識一個進程,但是在網絡中這是行不通的。
3、其實TCP/IP協議已經幫我們解決了這個問題,網絡層的"ip地址"可以唯一標識網絡中的主機,而傳輸層的"協議+端口"可以唯一標識主機中的應用程序(進程)。
4、這樣利用ip地址,協議,端口就可以標識網絡的進程了,網絡中的進程通信就可以利用這個標志與其它進程進行交互

三、套接字類型

SOCK_STREAM(流式套接字,主要用于TCP協議)
SOCK_DGRAM(數據報套接字,主要用于UDP協議)

import socket# 創建套接字(Socket) TCP協議 s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 創建套接字(Socket) UDP協議 s2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)print(s1)

四、Socket發送編程

需求:創建一個UDP協議的套接字,然后發送一條數據到網絡上的另外一個進程

# todo 1、創建套接字 client_socket = socket(AF_INET, SOCK_DGRAM) # SOCK_DGRAM:UDP協議# todo 2、定義一個接收消息的目標,8080是一個目標服務器的端口,127.0.0.1是目標服務器地址 server_host_port = ('www.baidu.com', 8080) # server_host_port = ('127.0.0.1', 8080) # todo 3、準備即將發送的數據,encode表示按照一種編碼格式把數據變成字節數組bytes # 數據一定是字節數據才能發送 datas = input('請輸入:').encode('utf-8')# todo 4、發送數據,標識一個進程是通過ip+端口+協議 client_socket.sendto(datas, server_host_port)print('發送完成')# todo 5、關閉套接字,其實就是釋放了系統資源 client_socket.close()

輸出結果:

請輸入:kb 發送完成

特點:客戶端發送一句話就關閉了,服務器接收一句話也就關閉了

總結

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

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