1. 程式人生 > >Python進階【第一篇】socket

Python進階【第一篇】socket

1.socket()模組函式

要使用socket.socket()函式來建立套接字。其語法如下:

socket.socket(socket_family,socket_type,protocol=0)

socket_family可以是如下引數:

  socket.AF_INET IPv4(預設)
  socket.AF_INET6 IPv6

  socket.AF_UNIX 只能夠用於單一的Unix系統程序間通訊

socket_type可以是如下引數:

  socket.SOCK_STREAM  流式socket , for TCP (預設)
  socket.SOCK_DGRAM   資料報式socket , for UDP

  socket.SOCK_RAW 原始套接字,普通的套接字無法處理ICMP、IGMP等網路報文,而SOCK_RAW可以;其次,SOCK_RAW也可以處理特殊的IPv4報文;此外,利用原始套接字,可以通過IP_HDRINCL套接字選項由使用者構造IP頭。
  socket.SOCK_RDM 是一種可靠的UDP形式,即保證交付資料報但不保證順序。SOCK_RAM用來提供對原始協議的低階訪問,在需要執行某些特殊操作時使用,如傳送ICMP報文。SOCK_RAM通常僅限於高階使用者或管理員執行的程式使用。
  socket.SOCK_SEQPACKET 可靠的連續資料包服務

protocol引數:

  0  (預設)與特定的地址家族相關的協議,如果是 0 ,則系統就會根據地址格式和套接類別,自動選擇一個合適的協議

2.套接字物件內建方法

伺服器端套接字函式

s.bind()   繫結地址(ip地址,埠)到套接字,引數必須是元組的格式例如:s.bind(('127.0.0.1',8009))

s.listen(5)  開始監聽,5為最大掛起的連線數

s.accept()  被動接受客戶端連線,阻塞,等待連線

客戶端套接字函式

s.connect()  連線伺服器端,引數必須是元組格式例如:s.connect(('127,0.0.1',8009))

公共用途的套接字函式

s.recv(1024)  接收TCP資料,1024為一次資料接收的大小

s.send(bytes)  傳送TCP資料,python3傳送資料的格式必須為bytes格式

s.sendall()  完整發送資料,內部迴圈呼叫send

s.close()  關閉套接字

例項1.簡單實現socket程式

server端

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/env python # _*_ coding:utf-8 _*_ importsocket importtime IP_PORT=('127.0.0.1',8009) BUF_SIZE=1024 tcp_server=socket.socket() tcp_server.bind(IP_PORT) tcp_server.listen(5) whileTrue: print("waiting for connection...") conn,addr=tcp_server.accept() print("...connected from:",addr) whileTrue: data

相關推薦

Python第一socket

1.socket()模組函式 要使用socket.socket()函式來建立套接字。其語法如下: socket.socket(socket_family,socket_type,protocol=0) socket_family可以是如下引數:   s

Python第一Python簡介

代碼 簡潔 處理 ros 進一步 基礎 得到 運行速度 動態 Python簡介 1.Python的由來 Python是著名的“龜叔”Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個編程語言。 2.C 和 Python、Java、C#等

Python之路第一:Python簡介和入門

源碼 world 網絡服務 換行 編程風格 大小寫 utf8 編譯安裝 比較 python簡介: 一、什麽是python Python(英國發音:/ pa θ n/ 美國發音:/ pa θɑ n/),是一種面向對象、直譯式的計算機程序語言。 每一門語言都有自己的哲學: py

Python之路第一:使用miniconda安裝python多版本

ase alias linux 1.10 ade ror another 離開 cer 一、簡介 Anaconda是一個發行包,裏面集成打包了很多的軟件包,使用conda包管理器來安裝軟件,比較方便,但是Anaconda軟件包太大,個人不太喜歡,想自己定制。Minicond

Python之路第一Python簡介和入門

readline def 美團 sys eric gcc 下劃線 博客 height Python簡介 Python前世今生 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發

Python第九裝飾器

turn spa none app light fun rap log python 什麽是裝飾器 裝飾器本身就是函數,並且為其他函數添加附加功能 裝飾器的原則:1.不修改被裝飾對象的源代碼 2.不修改被裝飾對象的調用方式裝飾器=高階函數+函數嵌套+閉包 # res=t

Python第十模塊(上)

path 變量 屬性 一個 第三方 sys pre 應用程序 bsp ·一、模塊 模塊就是一組功能的集合體,我們的程序可以導入模塊來復用模塊裏的功能。為了編寫可維護的代碼,我們把很多函數分組,分別放到不同的文件裏,這樣,每個文件包含的代碼就相對較少,很多編程語言都采用這種組

Python自學之路第一Python簡介和入門

youtube 通用 too 互聯網公司 python腳本 bar strong 重裝 排行 Python前世今生 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本

python全棧開發第一Python簡介以及入門

request lambda sci linu ogl red 控制 ttl 排行 一、python介紹   python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,Guido開始寫Python語言的編譯器。Python這個名字,來

python入門第一:安裝

入門 Python的創始人為Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,做為ABC 語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為程序的名字,是因為他是一個叫Monty Python的喜劇團體的愛好者。 語

Python開發第一基礎題目二

循環 bsp 程序 大小 集合 九九乘法 出現 .com 位數 1 列表題 l1 = [11, 22, 33] l2 = [22, 33, 44] # a. 獲取l1 中有,l2中沒有的元素 for i in l1: if i not in l2:

Python 全棧開發第一:目錄

文件 inux celery 函數編程 www 復用 web linux系統 ado Python 全棧開發【第0篇】:目錄 第一階段:Python 開發入門 Python 全棧開發【第一篇】:計算機原理&Linux系統入門 Python 全棧開發【第二

Python學習之路第一:Python簡介與入門

Python簡介 一、什麼是Python Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向物件的指令碼語言。 Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。 Python 是一種解釋型語言:原始碼不是

pyhton之路第一python變數和if語句

一.初識python 1.第一句python     -字尾名是可以任意?     -匯入模組     ==>以後檔案字尾名.py #!/usr/bin/env python # -*- coding:utf8 -*- pri

Python開發第一:目錄

本系列博文包含 Python基礎、前端開發、Web框架、快取以及佇列等,希望可以給正在學習程式設計的童鞋提供一點幫助!!! Python開發【第一篇】:目錄 Python開發【第二篇】:初識Python Python開發【第三篇】:Python基本資料型別 Python開發【

Python學習之路第一-Python簡介和基礎入門

1.Python簡介                   1.1 Python是什麼      相信混跡IT界的很多朋友都知道,Python是近年來最火的一個熱點,沒有之一。從性質上來講它和我們熟知的C、java、php等沒有什麼本質的區別,也是一種開發語言,而且已經進階到主

OFDM入門 未完LTE輕鬆學習總結

OFDM是LTE物理層的最基礎的技術,MIMO技術、頻寬自適應技術、動態資源排程技術都是在OFDM技術之上得以實現的。 1.OFDM技術原理 OFDM(Orthogonal Frenquency Division Multiplexing),是一

Python之路第二計算機組成

時鐘頻率 space font 存儲 bit 硬件組成 第二篇 時鐘 速度慢 硬件組成:輸入單元、輸出單元、中央處理單元、存儲單元 南橋:I/O操作 北橋:CPU操作 0/1的單位稱為bit(位) bit是計算機中能識別的最小單位。 字節是計算機中最小的存儲單位。 8b

MySQL數據庫學習第一數據庫安裝

極限 通過 處的 如果 rpm mongodb 其他 增強 初始配置 一、基礎部分 1.數據庫是什麽 之前所學,數據要永久保存,比如用戶註冊的用戶信息,都是保存於文件中,而文件只能存在於某一臺機器上。 如果我們不考慮從文件中讀取數據的效率問題,並且假設我們的程序所有的組件都

web前端第一HTML基礎一(標簽)

lpad 百度 合並單元格 div gpo a標簽 適合 code words 一、初始html 1.web服務本質 import socket sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bin