Python代码中未接收客户端套接字
我有一个python程序,它应该连接到服务器并接收特殊格式的数据包,我可以测试并过滤掉这些数据包。我可以连接到服务器,但是我看不到我正在接收任何数据包——尽管我确信我正在接收。我不知道如何调试这个Python代码中未接收客户端套接字,python,sockets,Python,Sockets,我有一个python程序,它应该连接到服务器并接收特殊格式的数据包,我可以测试并过滤掉这些数据包。我可以连接到服务器,但是我看不到我正在接收任何数据包——尽管我确信我正在接收。我不知道如何调试这个 class client: def __init__(self, host ='127.0.0.1', port=12345): self.host = host self.port = port self.sock =
class client:
def __init__(self, host ='127.0.0.1', port=12345):
self.host = host
self.port = port
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect((self.host, self.port))
def get_next_event(self):
pkt_size_data = self.sock.recv(4)
# on the above line I am not getting any response, the client just waits for something....
pkt_size = self.size_struct.unpack((pkt_size_data))[0] #I never get here
pkt_data= self.sock.recv(pkt_size)
#( get_next_event is called from an infinite loop )
我正在使用VS2010-设置断点-使用VS2010工具查看我的对象-是否有一些工具可用于调试并查看为什么我没有从recv获得任何响应
知道我为什么没有得到任何回应吗?试试嗅探器看看发生了什么。试试“尽管我确信我是”——你怎么确定?证据是什么?这个程序已经被其他人使用过了(我已经更改了服务器发送的内容,理论上,我确信发送和接收的数据包是同一类型的,但我确信服务器正在发送…一些东西。我正在尝试修改客户端,但我正在尝试先理解它,但我无法让它工作。服务器正在连续发送数据包…嗯即使不是这样,我也希望能够知道发生了什么。请尝试在无限循环外调用一次。看看你得到了什么。试着用小于4的bufsize来调用它,比如说1。看看你得到了什么。但是,现在看起来你并没有收到任何东西。这是问题的一个主要部分-我该如何找到什么我没有收到任何消息吗?谢谢你,伊扎克,我已经尝试了这两个选项,我仍然有一个空白屏幕。是否有任何调试工具(VS2010内部或某些命令行工具)可以告诉我是否收到任何消息?我不知道如何比较服务器运行时的通信量,看看服务器是否真的发送了任何消息。我已经浏览了服务器代码,似乎确实如此……Wireshark向我展示了(作为我在没有任何工具的情况下可以看到的唯一东西),当服务器运行时,会有很多ICMP消息和SNMP get request、get next request、get response(内容没有任何意义)您必须在服务器和客户端通过的接口上捕获数据包,运行服务器和客户端,然后过滤流量。例如,127.0.0.1端口12345的TCP连接