国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 疏附县| 开封市| 罗源县| 桂林市| 武冈市| 江源县| 万源市| 鹤壁市| 元氏县| 金阳县| 津南区| 大厂| 大余县| 阜新市| 平度市| 崇州市| 昌黎县| 琼海市| 贵定县| 镶黄旗| 巩留县| 阿鲁科尔沁旗| 澜沧| 长武县| 宝兴县| 定襄县| 大埔县| 涞源县| 湘潭市| 贡山| 阿克| 兴城市| 上杭县| 沙坪坝区| 奈曼旗| 东乌珠穆沁旗| 阿鲁科尔沁旗| 苏尼特左旗| 吉安县| 边坝县| 乡宁县|