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 2.7 python套接字客户端不发送任何内容_Python 2.7_Sockets - Fatal编程技术网

Python 2.7 python套接字客户端不发送任何内容

Python 2.7 python套接字客户端不发送任何内容,python-2.7,sockets,Python 2.7,Sockets,我正在尝试通过HTTP套接字进行集成。我正在使用python创建套接字客户端,并将数据发送到用C创建的套接字服务器 如下图所示,集成文档给出了一个C语言示例,说明了我必须如何将数据发送到服务器: 集成文档示例: 1- 2- 3- 4- 我尝试使用python中的ctypes模块来实现这一点: class SPMSifHdr(ctypes.Structure): _fields_ = [ ('ui32Synch1', ctypes.c_uint32), ('

我正在尝试通过HTTP套接字进行集成。我正在使用python创建套接字客户端,并将数据发送到用C创建的套接字服务器

如下图所示,集成文档给出了一个C语言示例,说明了我必须如何将数据发送到服务器:

集成文档示例:

1-

2-

3-

4-

我尝试使用python中的ctypes模块来实现这一点:

class SPMSifHdr(ctypes.Structure):
    _fields_ = [
        ('ui32Synch1', ctypes.c_uint32),
        ('ui32Synch2', ctypes.c_uint32),
        ('ui16Version', ctypes.c_uint16),
        ('ui32Cmd', ctypes.c_uint32),
        ('ui32BodySize', ctypes.c_uint32)
    ]

class SPMSifRegisterMsg(ctypes.Structure):
    _fields_ = [
        ('hdr1', SPMSifHdr),
        ('szLisence', ctypes.c_char*20),
        ('szApplName', ctypes.c_char*20),
        ('nRet', ctypes.c_int)
    ]

body_len = ctypes.sizeof(SPMSifRegisterMsg)
header = SPMSifHdr(ui32Synch1=0x55555555, ui32Synch2=0xaaaaaaaa, ui16Version=1, ui32Cmd=1, ui32BodySize=body_len)
body = SPMSifRegisterMsg(hdr1=header, szLisence='12345', szApplName='MyPmsTest', nRet=1)

socket_connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# config is a dict with the socket server connection params
socket_connection.connect((config.get('ip'), int(config.get('port'))))

socket_connection.sendall(bytearray(body))
socket_connection.recv(1024)
当我调用socket recv函数时,它从未收到任何信息,因此我使用windows工具检查我发送的数据,如下图所示,似乎发送了任何数据:

我甚至尝试发送一个简单的“Hello!world”字符串,结果总是一样的

插座连接已打开。我知道这一点,因为我可以从服务器面板上看到打开了多少连接


我做错了什么?

错误在于,只有在服务器返回响应时,SocketSniff程序才会显示发送的数据。在这种情况下,服务器从不返回任何内容,因为缺少一些字节

我发现它创建了我自己的socketecho服务器,并检查我发送的数据是否不完整


谜团解开了D

错误在于,如果服务器返回响应,SocketSniff程序仅显示发送的数据。在这种情况下,服务器从不返回任何内容,因为缺少一些字节

我发现它创建了我自己的socketecho服务器,并检查我发送的数据是否不完整

谜团解开了D