我在python中搞乱了smpp实现。在java中,我可以:
output = new DataOutputStream(socket.getOutputStream());
out.write(someBytes)
do something else
output.write(someBytes)
当我尝试在python中执行同样的操作时:
^{pr2}$第二个命令永远不会被调用。但如果我再联系一下:
s.send(bytes(data[:])) #send first
s.connect((host,port))
s.send(bytes(data[:])) #send second
那就行了。我是python新手,如果这是个简单的问题,请原谅我。我看了文档,找不到任何类似的东西。我需要能够发送到套接字n次,而不是每次都调用connect发送。如果每次需要发送时,我都需要建立一个新的套接字连接,这样做不起作用。我知道有用于smpp的python api,也有用于smpp的javaapi,但我喜欢自己实现。Java正在工作,现在需要用python解决这个问题。在
谢谢你
编辑:
代码如下:
import socket
bindPdu=[0, 0, 0, 33, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 112, 97, 118, 101, 108, 0, 112, 97, 118, 101, 108, 0, 0, 0, 0, 0, 0, 0, 1, 0]
s=socket.socket()
host="localhost"
port=2775
s.connect((host,port))
unbind=[0,0,0,16,0,0,0,6,0,0,0,0,0,0,0,1]
s.send(bytes(bindPdu[:]))
s.send(bytes(unbind[:]))
第一次发送发送绑定pdu,运行正常,但第二次不工作。测试服务器是正常的,因为它以前被测试过,从来没有像这样的问题。第二个应该发送unbind PDU,但它没有发送。在
你所说的“第二个命令从不被调用”是什么意思?程序挂了?如果你按Ctrl+C,它会给你回溯吗?在
我可以在同一个套接字上多次调用
send
。可能是你的服务器出了问题?在输出:
^{pr2}$相关问题 更多 >
编程相关推荐