python网络编程—Socket
生活随笔
收集整理的這篇文章主要介紹了
python网络编程—Socket
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Socket是什么?
socket:簡稱套接字,是進程間通訊的一種方式,他與其他進程間通訊的一個主要不同是:它能實現不同主機間進程間通訊,我們網絡上各種各樣的服務大多是基于Socket來完成通訊的,例如我們每天瀏覽網頁、QQ聊天等等。
基于文件和面向網絡
二、網絡中進程如何通信?
1、首要解決的問題是如何標識一個唯一的進程,否則通信無從談起!
2、在本地可以通過進程PID來唯一標識一個進程,但是在網絡中這是行不通的。
3、其實TCP/IP協議已經幫我們解決了這個問題,網絡層的"ip地址"可以唯一標識網絡中的主機,而傳輸層的"協議+端口"可以唯一標識主機中的應用程序(進程)。
4、這樣利用ip地址,協議,端口就可以標識網絡的進程了,網絡中的進程通信就可以利用這個標志與其它進程進行交互
三、套接字類型
SOCK_STREAM(流式套接字,主要用于TCP協議)
SOCK_DGRAM(數據報套接字,主要用于UDP協議)
四、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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python—多线程之线程之间共享数据(
- 下一篇: python—多线程之信号量