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

首頁 > 編程 > Python > 正文

Python Socket編程入門教程

2020-02-23 05:32:59
字體:
來源:轉載
供稿:網(wǎng)友

這是用來快速學習 Python Socket 套接字編程的指南和教程。Python 的 Socket 編程跟 C 語言很像。
Python 官方關于 Socket 的函數(shù)請看 http://docs.python.org/library/socket.html
基本上,Socket 是任何一種計算機網(wǎng)絡通訊中最基礎的內(nèi)容。例如當你在瀏覽器地址欄中輸入 www.jb51.net 時,你會打開一個套接字,然后連接到 www.jb51.net 并讀取響應的頁面然后然后顯示出來。而其他一些聊天客戶端如 gtalk 和 skype 也是類似。任何網(wǎng)絡通訊都是通過 Socket 來完成的。

寫在開頭

本教程假設你已經(jīng)有一些基本的 Python 編程的知識。
讓我們開始 Socket 編程吧。

創(chuàng)建 Socket

首先要做的就是創(chuàng)建一個 Socket,socket 的 socket 函數(shù)可以實現(xiàn),代碼如下:

代碼如下:
#Socket client example in python

import socket #for sockets

#create an AF_INET, STREAM socket (TCP)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

print 'Socket Created'

函數(shù) socket.socket 創(chuàng)建了一個 Socket,并返回 Socket 的描述符可用于其他 Socket 相關的函數(shù)。
上述代碼使用了下面兩個屬性來創(chuàng)建 Socket:
地址簇 : AF_INET (IPv4)
類型: SOCK_STREAM (使用 TCP 傳輸控制協(xié)議)

錯誤處理

如果 socket 函數(shù)失敗了,python 將拋出一個名為 socket.error 的異常,這個異常必須予以處理:
代碼如下:
#handling errors in python socket programs

import socket #for sockets
import sys #for exit

try:
    #create an AF_INET, STREAM socket (TCP)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
    print 'Failed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1]
    sys.exit();

print 'Socket Created'

好了,假設你已經(jīng)成功創(chuàng)建了 Socket,下一步該做什么呢?接下來我們將使用這個 Socket 來連接到服務器。

注意:

與 SOCK_STREAM 相對應的其他類型是 SOCK_DGRAM 用于 UDP 通訊協(xié)議,UDP 通訊是非連接 Socket,在這篇文章中我們只討論 SOCK_STREAM ,或者叫 TCP 。

連接到服務器

連接到服務器需要服務器地址和端口號,這里使用的是 www.jb51.net 和 80 端口。

首先獲取遠程主機的 IP 地址

連接到遠程主機之前,我們需要知道它的 IP 地址,在 Python 中,獲取 IP 地址是很簡單的:

代碼如下:
import socket #for sockets
import sys #for exit

try:
    #create an AF_INET, STREAM socket (TCP)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
    print 'Failed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1]

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 耿马| 泰兴市| 福清市| 宁陵县| 咸阳市| 芮城县| 聊城市| 额尔古纳市| 惠东县| 姚安县| 合水县| 涪陵区| 成都市| 台州市| 大城县| 浪卡子县| 台中市| 增城市| 南皮县| 湖南省| 新泰市| 建平县| 吴旗县| 房产| 扎赉特旗| 鹤峰县| 赫章县| 东丰县| 葫芦岛市| 海口市| 田东县| 乃东县| 张家川| 马龙县| 社会| 张家川| 遂平县| 饶阳县| 合川市| 津南区| 龙南县|