最近一段时间一直在学习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))
# 获取当前路径,并读取当前目录下的r