Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python代码中未接收客户端套接字_Python_Sockets - Fatal编程技术网

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 =

我有一个python程序,它应该连接到服务器并接收特殊格式的数据包,我可以测试并过滤掉这些数据包。我可以连接到服务器,但是我看不到我正在接收任何数据包——尽管我确信我正在接收。我不知道如何调试这个

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连接