国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中的TCP socket寫法示例

2020-02-23 00:06:48
字體:
供稿:網(wǎng)友

前言

本文主要介紹了關于Python中TCP socket的寫法,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

一、 服務器server的寫法:

1. 創(chuàng)建 socket 套接字:

網(wǎng)絡編程接口 socket(family = AF_INET , type = SOCKET_STREM,proto = 0, fileno = None)   提供了多種socket family。AF_INET 是默認的family,需要綁定IP和端口。 127.0.0.1是一個特殊的IP地址,表示本機地址。如果綁定到這個地址,客戶端必須同時在本機運行才能連接,也就是說,外部的計算機無法連接進來。

不同的協(xié)議family使用的地址形式不同,通常來說我們使用的是AF_INET-----地址是以(IP,PORT)形式存。在type 類型,我們常用的有兩種 SOCKET_STREM ,流式套接字,表示基于連接的TCP套接字,SOCKET_DGRAM, 數(shù)據(jù)報套接字,基于無連接的(UDP)接口。 如果不設定,默認就是 SOCKET_STREM 。

2. bind 綁定     

使用方法:socket.bind(address)  把套接字綁定在 address 上,address的形式 根據(jù) family 來設定。不管是client還是server,創(chuàng)建socket的時候都是通過一個本地的文件來進行的。  

3. listen 監(jiān)聽      

使用方法:socket.listen([backlog])  使能 socket 接收連接請求,listen(self,backlog = None) ,backlog需要大于0,指定了可以緩存的連接請求的數(shù)量。

4. accept 接受請求連接

在等待一個即將來臨的連接,會返回一個代表連接的新的socket,還會返回一個地址(host和port),可以用兩個東西接收,前一個代表新的socket,后一個就是接收地址。

寫的方法:connet_socket,client_addr = srv.accept() connet_socket就是新的socket,然后connet_socket開始接下來的傳輸。connet_socket,client_addr,前者表示接收的新的socket,后者就是地址,具體看程序第10行。

5. 接收數(shù)據(jù)  

使用方法:socket.recv(bufsize[,flags])  從 socket 中接收數(shù)據(jù),返回的是 bytes ,是接收到的內(nèi)容。bufsize指定了一次最多接收多少個數(shù)據(jù),如果沒有數(shù)據(jù)接收,程序會阻塞,一直到有數(shù)據(jù)或者遠程終端斷開連接.

6. 發(fā)送數(shù)據(jù)  

使用方法:socket.send(bytes[, flags])  你的socket必須和遠程的socket建立了聯(lián)系,返回值是發(fā)送的數(shù)量,可以判斷你的數(shù)據(jù)是否發(fā)送完畢,如果沒有,繼續(xù)send余下來的數(shù)據(jù)

import sockethostname = '127.0.0.1' #設置主機名port = 6666  #設置端口號 要確保這個端口號沒有被使用,可以在cmd里面查看addr = (hostname,port)srv = socket.socket() #創(chuàng)建一個socketsrv.bind(addr)srv.listen(5)print("waitting connect")while True: connect_socket,client_addr = srv.accept() print(client_addr) recevent = connect_socket.recv(1024) print(str(recevent,encoding='gbk')) connect_socket.send.send(bytes("你好,數(shù)據(jù)傳輸完成,這里是gaby-yan--server",encoding='gbk')) connect_socket.close()            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽中县| 嵊泗县| 临安市| 福海县| 梁河县| 博兴县| 徐水县| 邵东县| 襄城县| 弥渡县| 潞城市| 金山区| 临沭县| 周至县| 临清市| 涟水县| 抚远县| 肇州县| 克拉玛依市| 金华市| 望都县| 禹州市| 柏乡县| 田林县| 镇宁| 伊川县| 平陆县| 高密市| 舞阳县| 灵丘县| 双鸭山市| 梓潼县| 台中县| 河北区| 保山市| 布拖县| 大余县| 砚山县| 如东县| 慈利县| 乌拉特后旗|