欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)滴滴。以供將來(lái)復(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ā)來(lái)的請(qǐng)求,用一個(gè)新的端口port2同client建立連接。

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

創(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中使用Queue和Condition進(jìn)行線程同步的方法

    Python中使用Queue和Condition進(jìn)行線程同步的方法

    這篇文章主要介紹了Python中使用Queue模塊和Condition對(duì)象進(jìn)行線程同步的方法,配合threading模塊下的線程編程進(jìn)行操作的實(shí)例,需要的朋友可以參考下
    2016-01-01
  • python使用KNN算法識(shí)別手寫數(shù)字

    python使用KNN算法識(shí)別手寫數(shù)字

    這篇文章主要為大家詳細(xì)介紹了python使用KNN算法識(shí)別手寫數(shù)字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 基于Python實(shí)現(xiàn)貪吃蛇小游戲(附源碼)

    基于Python實(shí)現(xiàn)貪吃蛇小游戲(附源碼)

    本次我們將編寫一個(gè)貪吃蛇的游戲。通過(guò)鍵盤上、下、左、右控制小蛇上、下、左、右移動(dòng),吃到食物后長(zhǎng)度加1;蛇頭碰到自身或窗口邊緣,游戲失敗,需要的可以參考一下
    2022-11-11
  • 基于Python繪制3D立體愛心圖案的示例詳解

    基于Python繪制3D立體愛心圖案的示例詳解

    這篇文章主要為大家詳細(xì)介紹了利用Python實(shí)現(xiàn)繪制3D立體愛心圖案的四種不同方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-11-11
  • python提取log文件內(nèi)容并畫出圖表

    python提取log文件內(nèi)容并畫出圖表

    這篇文章主要介紹了python提取log文件內(nèi)容并畫出圖表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python中利用matplotlib讀取灰度圖的例子

    python中利用matplotlib讀取灰度圖的例子

    今天小編就為大家分享一篇python中利用matplotlib讀取灰度圖的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 一鍵搞定python連接mysql驅(qū)動(dòng)有關(guān)問題(windows版本)

    一鍵搞定python連接mysql驅(qū)動(dòng)有關(guān)問題(windows版本)

    這篇文章主要介紹了對(duì)于mysql驅(qū)動(dòng)問題折騰了一下午,現(xiàn)共享出解決方案,需要的朋友可以參考下
    2016-04-04
  • Python實(shí)現(xiàn)微信中找回好友、群聊用戶撤回的消息功能示例

    Python實(shí)現(xiàn)微信中找回好友、群聊用戶撤回的消息功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)微信中找回好友、群聊用戶撤回的消息功能,結(jié)合實(shí)例形式分析了Python基于微信itchat模塊實(shí)現(xiàn)針對(duì)撤回消息的查看功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • 2023最新pytorch快速安裝指南(超詳細(xì)版)

    2023最新pytorch快速安裝指南(超詳細(xì)版)

    這篇文章主要給大家介紹了2023年最新pytorch快速安裝指南的相關(guān)資料,PyTorch是一個(gè)開源的深度學(xué)習(xí)框架,提供了各種張量操作并通過(guò)自動(dòng)求導(dǎo)可以自動(dòng)進(jìn)行梯度計(jì)算,方便構(gòu)建各種動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò),需要的朋友可以參考下
    2023-10-10
  • python playwright之元素定位示例詳解

    python playwright之元素定位示例詳解

    這篇文章主要為大家介紹了python playwright之元素定位示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評(píng)論