如何在python中传输二进制数据

时间:2009-09-20 16:01:16

标签: python sockets

我想使用python传输二进制数据。我不知道如何实现它。我确实使用SOCK_DGRAM创建了python套接字程序。问题SOCK_STREAM是因为我们的isp不允许使用tcp服务器套接字,因此无法通过Internet工作。

我想定期向远程计算机发送屏幕截图。 我有一个想法是维护二进制数据的Que并且有两个线程同步写入和读取。 我不想使用VNC。

我该怎么做?

我使用SOCK_STREAM编写了服务器套接字和客户端套接字,它正在使用localhost,即使放置了相应的ip,也无法通过Internet工作。我们也试过在一台电脑上运行tomcat web服务器,并尝试通过互联网上的其他电脑访问,但无法正常工作。

2 个答案:

答案 0 :(得分:3)

SOCK_STREAM是传输数据的正确方法。

你对互联网服务供应商的看法毫无意义;它们无法控制您的计算机是否侦听接口上的某个端口。也许你在谈论防火墙/寻址问题?

如果您坚持使用UDP(并且您不应该因为您不必担心数据包到达或不到达),那么您需要先使用socket.bind然后{ {1}}循环读取数据并跟踪打开的连接。做正确的工作真的很难。

答案 1 :(得分:2)

这里有两个问题。

首先,您需要能够解决远程方问题。这与您所谓的“因为大多数ISP不允许TCP服务器套接字而无法在Internet上工作”有关。这通常很困难,因为另一方可能被置于NAT或防火墙后面。

至于第二个问题,在你可以进行TCP连接之后实际传输数据的问题,如果你可以通过远程方来寻址python套接字就行了。

相关问题