阻塞套接字客户端示例

1 投票
2 回答
542 浏览
提问于 2025-04-16 01:22

我需要通过TCP端口连接到一个阻塞服务(如果这里有人了解的话,这是一个摩托罗拉的数字线连接协议服务),我想找一个好的入门示例,最好是用我比较熟悉的Perl、Python或PHP语言。

到目前为止,我尝试了这个基本示例,但没有成功。

import socket
import sys

HOST, PORT = "172.16.10.5", 15142
data = " ".join(sys.argv[1:])

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
print "connected"

sock.send(data + "\n")
print "data sent"

received = sock.recv(1024)
print "data received"
sock.close()

print "Sent:     %s" % data
print "Received: %s" % received

这个脚本在sock.send之后就一直卡住了,有谁知道一个好的示例吗?谢谢!

2 个回答

1

我对这个具体的协议不太了解,但我建议你不要自己去管理网络连接(也就是套接字),可以试试Twisted框架,它是用Python写的网络工具。

Twisted是一个基于事件驱动的网络引擎,使用Python编写,并且是MIT许可证下的开源软件。

2

你可能需要用 \r\n 而不是 \n。如果没有正确结束,响应就不会发送出去。

撰写回答