最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Socket實(shí)現(xiàn)簡(jiǎn)單TCP Server/client功能示例

 更新時(shí)間:2017年08月05日 10:22:13   作者:奔跑吧大龍  
這篇文章主要介紹了Python Socket實(shí)現(xiàn)簡(jiǎn)單TCP Server/client功能,結(jié)合實(shí)例形式分析了Python基于socket創(chuàng)建TCP服務(wù)器Server與客戶端client相關(guān)實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python Socket實(shí)現(xiàn)簡(jiǎn)單TCP Server/client功能。分享給大家供大家參考,具體如下:

網(wǎng)絡(luò)上關(guān)于socket的介紹文章數(shù)不勝數(shù)。自己記錄下學(xué)習(xí)的點(diǎn)點(diǎn)滴滴。以供將來復(fù)習(xí)學(xué)習(xí)使用。

socket中文的翻譯是套接字,總感覺詞不達(dá)意。簡(jiǎn)單的理解就是ip+port形成的一個(gè)管理單元。也是程序中應(yīng)用程序調(diào)用的接口。

在這里我們先介紹如何啟動(dòng)tcp 的server。

tcp連接中server部分,啟動(dòng)一個(gè)ip和port口,在這個(gè)port口監(jiān)聽,當(dāng)收到client發(fā)來的請(qǐng)求,用一個(gè)新的端口port2同client建立連接。

socket啟動(dòng)監(jiān)聽的過程就是:

創(chuàng)建socket
bind端口
開始監(jiān)聽
建立連接+繼續(xù)監(jiān)聽

代碼:

'''
This is a testing program
the program is used to start server
'''
import socket
import sys
def start_tcp_server(ip, port):
  #create socket
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  server_address = (ip, port)
  #bind port
  print 'starting listen on ip %s, port %s'%server_address
  sock.bind(server_address)
  #starting listening, allow only one connection
  try:
    sock.listen(1)
  except socket.error, e:
    print "fail to listen on port %s"%e
    sys.exit(1)
  while True:
    print "waiting for connection"
    client,addr = sock.accept()
    print 'having a connection'
    client.close()
if __name__ == '__main__':
  start_tcp_server('10.20.0.20', 12345)

在這里有一個(gè)常用技巧,在start_tcp_server中,我們最常用到的是本機(jī)的ip,為了程序的通用性,最好使用調(diào)用函數(shù)的方式獲取ip地址。

用到兩個(gè)函數(shù)socket.gethostnamesocket.gethostbyname('name')

ip = socket.gethostbyname(socket.gethostname())

但是問題是一般情況下得到的ip地址為127.0.0.1。

對(duì)于使用配置或dhcp獲取的ip,可參考本站相關(guān)文章。

socket client 發(fā)起連接

流程為:

創(chuàng)建接口
發(fā)起連接
創(chuàng)建接口參數(shù)同socket server相同
發(fā)起連接的函數(shù)為socket.connect(ip,port)

這個(gè)地方的ip與port為socket server端的ip和監(jiān)聽port。

代碼示例:

# -*- coding: utf-8 -*-
'''
This is a testing program
the program is used to test socket client
'''
import socket
import sys
def start_tcp_client(ip, port):
  #server port and ip
  server_ip = ip
  servr_port = port
  tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  try:
    tcp_client.connect((server_ip, server_port))
  except socket.error:
    print 'fail to setup socket connection'
  tcp_client.close()

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python利用zhdate模塊實(shí)現(xiàn)農(nóng)歷日期處理

    Python利用zhdate模塊實(shí)現(xiàn)農(nóng)歷日期處理

    zhdate模塊統(tǒng)計(jì)從1900年到2100年的農(nóng)歷月份數(shù)據(jù)代碼,支持農(nóng)歷和公歷之間的轉(zhuǎn)化,并且支持日期差額運(yùn)算。本文將利用這一模塊實(shí)現(xiàn)農(nóng)歷日期的處理,需要的可以參考一下
    2022-03-03
  • pytorch hook 鉤子函數(shù)的用法

    pytorch hook 鉤子函數(shù)的用法

    這篇文章主要介紹了pytorch hook 鉤子函數(shù)的用法,Hook 是 PyTorch 中一個(gè)十分有用的特性,使用后可以不必改變網(wǎng)絡(luò)輸入輸出的結(jié)構(gòu),方便地獲取、改變網(wǎng)絡(luò)中間層變量的值和梯度,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-03-03
  • python 中如何獲取列表的索引

    python 中如何獲取列表的索引

    這篇文章主要介紹了python 中如何獲取列表的索引,在文中給大家提到了python 返回列表中某個(gè)值的索引,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python開發(fā)加薪利器之Docker的使用實(shí)踐

    Python開發(fā)加薪利器之Docker的使用實(shí)踐

    docker利用容器技術(shù),獨(dú)立運(yùn)行一個(gè)或者一組應(yīng)用,docker是基于go語(yǔ)言開發(fā),docker鏡像好比是一個(gè)模版,可以通過這個(gè)模版來創(chuàng)建容器服務(wù),今天通過本文給大家分享Docker的使用實(shí)踐,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 詳解如何使用Python?LXML庫(kù)來解析和處理XML文檔

    詳解如何使用Python?LXML庫(kù)來解析和處理XML文檔

    在數(shù)據(jù)處理過程中,XML(可擴(kuò)展標(biāo)記語(yǔ)言)常常被用作數(shù)據(jù)存儲(chǔ)和傳輸,Python的lxml庫(kù)是一個(gè)強(qiáng)大的庫(kù),用于解析XML和HTML文檔,本文將向您介紹如何使用lxml庫(kù)來解析和處理XML文檔,需要的朋友可以參考下
    2023-08-08
  • Python中optionParser模塊的使用方法實(shí)例教程

    Python中optionParser模塊的使用方法實(shí)例教程

    這篇文章主要介紹了Python中optionParser模塊的使用方法,功能非常強(qiáng)大,需要的朋友可以參考下
    2014-08-08
  • python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本

    python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本

    這篇文章主要介紹了python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • python pymysql庫(kù)的常用操作

    python pymysql庫(kù)的常用操作

    這篇文章主要介紹了python pymysql庫(kù)的常用操作,幫助大家更好的利用python操作數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-10-10
  • 分享PyCharm的幾個(gè)使用技巧

    分享PyCharm的幾個(gè)使用技巧

    這篇文章主要介紹了分享PyCharm的幾個(gè)使用技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python代碼實(shí)現(xiàn)http/https代理服務(wù)器的腳本

    Python代碼實(shí)現(xiàn)http/https代理服務(wù)器的腳本

    這篇文章主要介紹了Python代碼做出http/https代理服務(wù)器,啟動(dòng)即可做http https透明代理使用,通過幾百行代碼做出http/https代理服務(wù)器代碼片段,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

甘泉县| 钟祥市| 虞城县| 廊坊市| 宝丰县| 望谟县| 唐海县| 沈阳市| 方城县| 昭觉县| 沾益县| 楚雄市| 独山县| 宁远县| 大埔县| 崇左市| 古丈县| 四平市| 岢岚县| 石河子市| 吉林市| 乌兰察布市| 武宣县| 慈利县| 莱州市| 尉犁县| 林芝县| 华容县| 沽源县| 马关县| 苍南县| 庄浪县| 隆安县| 湾仔区| 沂南县| 吴忠市| 闸北区| 万州区| 大厂| 松江区| 涟源市|