Python套接字未发送主机名

埃西·夏姆斯(Essi Shams)

我在python上使用asyncore.dispatcher客户端连接到在PC上运行的LabWindows中开发的服务器。这是连接到服务器的客户端上的代码片段:

class DETClient(asyncore.dispatcher):

   def __init__(self, host, port):
      asyncore.dispatcher.__init__(self)
      self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
      self.connect((host,port))

在服务器端,我的Labwindows代码正在寻找两个参数TCPPeerName和TCPPeerAddr:

GetTCPPeerName (handle, peerName, sizeof (peerName));
GetTCPPeerAddr (handle, peerAddress, sizeof (peerAddress));

似乎python代码根本没有传递主机名,因为我的服务器为PeerName获取了NULL。

建立连接时,我是否需要做任何事情来专门使asyncore客户端发送PeerName?

罗伯ᵩ

建立连接时,我是否需要做任何事情来专门使asyncore客户端发送PeerName?

不,您不需要,因为TCP客户端在建立连接时不会发送名称。他们发送地址。

GetTCPPeerName几乎可以肯定调用gethostbyaddr(X),其中X的地址被返回GetTCPPeerAddr在您的情况下gethostbyaddr()失败,因为该信息不可用。

这意味着您的主机名解析数据库缺少某些数据-您可能需要更新DNS,主机文件,WINS数据或主机名数据所在的任何位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章