Python2.6 SCTP发送和接收十六进制值通过SCTP套接字

2024-04-28 21:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python2.6和pysctp包进行sctp编程。我能够从服务器捕获消息,但无法从sctp套接字提取所接收消息的十六进制转储。以及如何使用相同的套接字将我的响应hex作为响应发送到连接的服务器。在

假设我的服务器独立于此客户机,并且它不断尝试连接192.168.10.13地址。在

代码:

#!/usr/bin/python

import sys
import socket
import pysctp
import pysctp.sctp as sctp

MAXRECVBUFFERSIZE = 2048
bindingIp  = "192.168.10.13"
socketPort = 112233;
socket     = sctp.sctpsocket_tcp(socket.AF_INET);

responseHex =[0xd0, 0x36, 0x02, 0x5a, 0x00, 0x51, 0x03, 0x00, 0x15, 0x00, 0x08, 0x00, 0x11];

socket.events.clear();
socket.bind((bindingIp, socketPort));
socket.listen(3);

client, addr = socket.accept();
buffer = client.recv(MAXRECVBUFFERSIZE);
print buffer   // This prints binary dump on the terminal
// And I want to send hexResponse variable through the same socket

socket.close();
exit(0)

Tags: theimport服务器client消息客户机buffer编程
1条回答
网友
1楼 · 发布于 2024-04-28 21:18:42

首先,记住不要在你的语句末尾加分号。您也不需要在文件末尾退出(0)。在

要获得“buffer”的十六进制转储,可以说:print map(hex, buffer)

要发送十六进制响应,最简单的方法是将responseHex的定义改为如下所示:

responseHex = '\xd0\x36\x02\x5a\x00\x51\x03\x00\x15\x00\x08\x00\x11'

那么它应该能够传递给客户端.send()功能。在

相关问题 更多 >