【发布时间】:2015-05-30 20:00:56
【问题描述】:
我最近开始制作一个纯 Skype 解析器,在一切正常之后,我坚持使用套接字通信。
让我解释一下
我正在使用 python 获取用户的 IP,然后脚本打开一个套接字服务器并将用户名发送到另一个用 .NET 编写的程序
这是为什么呢?好吧,python skype API 不是那么强大,所以我使用 axSkype 库来收集更多信息。
问题
python 套接字按应有的方式发送用户名,但我不知道获取信息的最有效方法。我正在考虑在同一个脚本中打开一个套接字服务器,然后等待 .NET 程序发回的内容。
我真的不知道如何尽可能快地做到这一点,所以我请求你的帮助。
代码
class api:
def GET(self, username):
skypeapi.activateSkype(username)
time.sleep(1) # because skype is ew
buf = []
print("==========================")
print("Resolving user " + username)
#This is where i'm starting the socket and sending data
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1", 5756))
s.sendall(username)
s.close()
#at this poaint i want to get data back from the .NET app
for logfile in glob.glob('*.log'):
buf += logparse.search(logfile, username)
print("Done!")
print("==========================")
return json.dumps(buf)
class index:
def GET(self):
return render.index()
if __name__ == "__main__":
app.run()
【问题讨论】:
-
看看 Python 发行版中的 ftplib.py,它有很好的套接字使用示例。通常,您从套接字
f = s.makefile('rb')打开一个文件指针,然后从中读取数据。祝你好运。