国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

40行代碼實現sip注冊

weij / 1526人閱讀

摘要:對的興趣也與日俱增,因此決定每周練手使用實現一個測試功能。的機制很強大,使用也很簡單,如下代碼就是通過簡單的交互,實現消息的發送和接收。

最近一段時間一直在學習python,并且用python編寫了一個基于sipp工具的自動化測試平臺,基本功能良好。對python的興趣也與日俱增,因此決定每周練手使用python實現一個測試功能。既然對sip熟悉,那就先從sip開始吧。

話說socket真是一個萬能的消息收發機制,尤其是對于測試人員來說,學會一門語言,并且把socket玩6,也許會給你的測試工作帶來很大的便利。python 的socket機制很強大,使用也很簡單,如下代碼就是通過簡單的socket交互,實現sip消息的發送和接收。

import os
import socket
import time

host = "172.31.225.220"
sport = "5060"

# 創建socket對象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 進行socekt配置,使其支持端口復用,否則發送方綁定5066,則無法使用該端口進行接收
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(("172.31.225.112", 5066))

try:
    port = int(sport)
except ValueError:
    port = socket.getservbyname(sport, "udp")
s.connect((host, port))

# 獲取當前路徑,并讀取當前目錄下的reg.msg文件內,作為發送的data。
# 本例子中的reg.msg為完整的REGISTER消息
path = os.getcwd()
file = os.path.join(path, "reg.msg")

# 由于python在進行明文讀取,默認會將回車換行強制轉換為/n,為了防止sip server解析錯誤,
# 在讀取時增加了newline參數,并設置為空,則不進行轉換,windows下讀取為/r/n
with open(file, "r+", newline="") as sm:
    data = sm.read()
    
# 進行循環收發,需要將reg.msg中的[users]字段替換為1001-1005
for i in range(1001, 1006):
    data = data.replace(r"[users]", str(i))
    print(data)
    s.sendall(data.encode(encoding="utf-8"))
    while 1:
        buf = s.recv(2048)
        print(buf.decode("utf-8"))
        break
    time.sleep(1) 

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38056.html

相關文章

  • 基于 WebRTC 構建 Web SIP Phone

    摘要:年月,被正式批準成為信號協議之一,并成為體系結構的一個永久單元。與一樣,是用于最主要的信令協議之一。一般來說,要么使用實體話機,要么在系統上安裝基于的客戶端程序。實體話機硬件成本高,基于的客戶端往往兼容性差,無法跨平臺,易被殺毒軟件查殺。 0 閱前須知 本文并不是教程,只是實現方案 我只是從WEB端考慮這個問題,實際還需要后端sip服務器的配合 jsSIP有個非常不錯的在線demo,...

    Moxmi 評論0 收藏0

發表評論

0條評論

weij

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<