成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python中socket的通信方法

這篇文章主要介紹python中socket的通信方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、夏邑網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為夏邑等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

socket的介紹

socket又稱“套接字”,socket會(huì)通過(guò)udp/tcp協(xié)議來(lái)發(fā)送數(shù)據(jù),用來(lái)實(shí)現(xiàn)兩臺(tái)機(jī)器的簡(jiǎn)單通信。

注意:如果要用socket實(shí)現(xiàn)兩臺(tái)機(jī)器的簡(jiǎn)單通信,請(qǐng)先確保這兩臺(tái)機(jī)器連入同一個(gè)局部網(wǎng)中。當(dāng)然,socket也可以實(shí)現(xiàn)一臺(tái)機(jī)器的通信,你只需要把連接對(duì)象ip設(shè)置為127.0.0.1,也就是本機(jī)ip。

實(shí)例

這里只展示部分實(shí)用的函數(shù)。

函數(shù)描述
socket.socket()創(chuàng)建一個(gè)套接字
socket.bind()綁定到一個(gè)ip和端口上,傳入?yún)?shù)為元組
socket.recv()接受數(shù)據(jù)
socket.send()發(fā)送數(shù)據(jù)
socket.close()關(guān)閉套接字
socket.connect()連接到一個(gè)ip和端口上
socket.listen()開(kāi)啟tcp端口上監(jiān)聽(tīng)模式
socket.accept()阻塞,等待連接

機(jī)器之間的通信功能

socket服務(wù)端

讓我們創(chuàng)建一個(gè)叫做socket_server.py,然后輸入以下代碼:

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發(fā)送的內(nèi)容:%s'%(addr[0],data))sock.close()

這里我們創(chuàng)建了一個(gè)套接字,綁定到了0.0.0.0:80的地址上,這個(gè)地址也可以改成我們本機(jī)的名稱。然后我們就開(kāi)始監(jiān)聽(tīng)模式,用戶連接之后,就開(kāi)始接受數(shù)據(jù)(注意:在接受數(shù)據(jù)之前要進(jìn)行utf8解碼)。

socket客戶端

創(chuàng)建完socket_server.py之后,我們就能創(chuàng)建我們的客戶端了。讓我們創(chuàng)建一個(gè)叫做socket_client.py的文件,然后輸入以下代碼:

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

這里我們就只講以下connect和send這兩個(gè)函數(shù)。connect函數(shù)我們傳入了個(gè)元組,當(dāng)然列表也行。第一個(gè)元素需要是連接的對(duì)象ip,第二個(gè)就是端口。連接完之后,我們就是用send函數(shù)來(lái)進(jìn)行發(fā)送消息,在發(fā)送之前,我們需要先把內(nèi)容編碼為utf8類型。

對(duì)一個(gè)網(wǎng)站發(fā)送數(shù)據(jù)

我們創(chuàng)建一個(gè)叫socket_website.py的文件,輸入以下代碼:

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

這里,我們對(duì)baidu.com發(fā)送了數(shù)據(jù),由于百度是https協(xié)議的,所以我們用443端口。如果代碼沒(méi)有報(bào)錯(cuò)的話,就說(shuō)明發(fā)送成功了。這個(gè)時(shí)候,百度的數(shù)據(jù)庫(kù)就會(huì)多了一段叫HELLO的文本內(nèi)容數(shù)據(jù)。

tip:如果不停的用socket向一個(gè)網(wǎng)站或機(jī)器發(fā)送數(shù)據(jù),數(shù)據(jù)太多就會(huì)導(dǎo)致目標(biāo)的數(shù)據(jù)庫(kù)/機(jī)器內(nèi)存爆滿,導(dǎo)致崩潰。這就實(shí)現(xiàn)了簡(jiǎn)單的傳說(shuō)中的ddos攻擊

以上是“python中socket的通信方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:python中socket的通信方法
標(biāo)題URL:http://jinyejixie.com/article30/gdpeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
崇仁县| 渭南市| 博野县| 曲沃县| 南通市| 尉犁县| 略阳县| 泰兴市| 阜南县| 武冈市| 芜湖市| 津南区| 肇源县| 无极县| 巴青县| 长乐市| 黑山县| 道真| 龙里县| 綦江县| 德清县| 略阳县| 滁州市| 大姚县| 灯塔市| 绍兴县| 上饶县| 全州县| 呈贡县| 伊金霍洛旗| 四子王旗| 大悟县| 宾川县| 天津市| 滦平县| 梅河口市| 双峰县| 万盛区| 建阳市| 盐城市| 时尚|