国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

python socket 完成簡單的通信

極客小將2021-01-08-
簡介python教程欄目介紹socket的通信方法推薦(免費):python教程socket的介紹socket又稱“套接字”,socket會通過udp/tcp協議來發送數據,用來實現兩臺機器的簡單通信。注意:如果要用socket實現兩臺機器的簡單通信,請先確保這兩臺機器連入同一個局部網中。當然,sock
www.pxcodes.com python教程欄目介紹socket的通信方法3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

推薦(免費):python教程3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

socket的介紹3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

socket又稱“套接字”,socket會通過udp/tcp協議來發送數據,用來實現兩臺機器的簡單通信。3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

注意:如果要用socket實現兩臺機器的簡單通信,請先確保這兩臺機器連入同一個局部網中。當然,socket也可以實現一臺機器的通信,你只需要把連接對象ip設置為127.0.0.1,也就是本機ip。3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

實例3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

這里只展示部分實用的函數。3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺


3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

函數描述socket.socket()創建一個套接字socket.bind()綁定到一個ip和端口上,傳入參數為元組socket.recv()接受數據socket.send()發送數據socket.close()關閉套接字socket.connect()連接到一個ip和端口上socket.listen()開啟tcp端口上監聽模式socket.accept()阻塞,等待連接

機器之間的通信功能3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

socket服務端

讓我們創建一個叫做socket_server.py,然后輸入以下代碼:3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import socket server = socket.socket()server.bind(('0.0.0.0',80))server.listen()sock,addr = server.accept()data = ""while True: tmp_data = sock.recv(1024) if tmp_data: data += tmp_data.decode("utf8") else: breakprint('%s發送的內容:%s'%(addr[0],data))sock.close()

這里我們創建了一個套接字,綁定到了0.0.0.0:80的地址上,這個地址也可以改成我們本機的名稱。然后我們就開始監聽模式,用戶連接之后,就開始接受數據(注意:在接受數據之前要進行utf8解碼)。3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

socket客戶端

創建完socket_server.py之后,我們就能創建我們的客戶端了。讓我們創建一個叫做socket_client.py的文件,然后輸入以下代碼:3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import socket client = socket.socket()client.connect(('127.0.0.1',80))client.send("Hello,Server.".encode("utf8"))client.close()

這里我們就只講以下connect和send這兩個函數。connect函數我們傳入了個元組,當然列表也行。第一個元素需要是連接的對象ip,第二個就是端口。連接完之后,我們就是用send函數來進行發送消息,在發送之前,我們需要先把內容編碼為utf8類型。3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

對一個網站發送數據3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

我們創建一個叫socket_website.py的文件,輸入以下代碼:3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import socket s.connect(('www.baidu.com',443))s.send('HELLO'.encode('utf8'))s.close()

這里,我們對baidu.com發送了數據,由于百度是https協議的,所以我們用443端口。如果代碼沒有報錯的話,就說明發送成功了。這個時候,百度的數據庫就會多了一段叫HELLO的文本內容數據。3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

tip:如果不停的用socket向一個網站或機器發送數據,數據太多就會導致目標的數據庫/機器內存爆滿,導致崩潰。這就實現了簡單的傳說中的ddos攻擊

以上就是python socket 完成簡單的通信的詳細內容,更多請關注少兒編程網其它相關文章!3Ab少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 大余县| 合水县| 灵寿县| 勃利县| 石屏县| 屏南县| 龙山县| 鸡西市| 日土县| 太谷县| 清流县| 陕西省| 崇阳县| 麻江县| 耿马| 繁峙县| 松滋市| 鄂伦春自治旗| 祁阳县| 新营市| 会泽县| 罗甸县| 鹿邑县| 内黄县| 沁阳市| 英超| 溧阳市| 锡林浩特市| 乌拉特中旗| 庄河市| 湘潭县| 东港市| 大方县| 大兴区| 榆树市| 香港| 高雄县| 城口县| 芦溪县| 宣威市| 甘谷县|