Pythonjc서 제공하는 기본적인것만 가지고
간단한 GUI 를 가진 모니터링 프로그램을 구현하려고 하는데
Tk로 해보려고 생각중 인데
Network 으로 전송받은 데이타는 어떻게 unpack 하는지 몰라서 검색을 좀 했는데
string 문자열처럼 format이라는것을 이용해서 Byte를 분리해내다니
Python 참 신기한것 같다.
http://stackoverflow.com/questions/15596118/parsing-c-structs-in-python
수신부
data = client.recv(data_payload)
if data:
#
data_size, data_process, data_buf = unpack(' #print "Data: %s" % data
print "size %d %d %s" % (data_size, data_process, data_buf)
sent_data_size = client.send(data)
송신부
struct _pd_info
{
int size;
int count;
char buf[256-8];
};
struct _pd_info comm_struct={0,};
_send_struct(char * fp)
{
static int process_num;
process_num++;
memset(&comm_struct, 00, sizeof(struct _pd_info));
comm_struct.count = process_num;
comm_struct.size = 4;
//
memcpy(&comm_struct.buf, "123abcdef", strlen("123abcdef"));
comm_struct.size += strlen("123abcdef");
memcpy(fp, &comm_struct,comm_struct.size+4 );
}
동작
Waiting to receive message from client
size 13 1 123abcdef
sent 256 bytes back to ('192.168.2.113', 50692)
Waiting to receive message from client
size 13 2 123abcdef
sent 256 bytes back to ('192.168.2.113', 50693
간단한 GUI 를 가진 모니터링 프로그램을 구현하려고 하는데
Tk로 해보려고 생각중 인데
Network 으로 전송받은 데이타는 어떻게 unpack 하는지 몰라서 검색을 좀 했는데
string 문자열처럼 format이라는것을 이용해서 Byte를 분리해내다니
Python 참 신기한것 같다.
http://stackoverflow.com/questions/15596118/parsing-c-structs-in-python
수신부
data = client.recv(data_payload)
if data:
#
data_size, data_process, data_buf = unpack('
print "size %d %d %s" % (data_size, data_process, data_buf)
sent_data_size = client.send(data)
송신부
struct _pd_info
{
int size;
int count;
char buf[256-8];
};
struct _pd_info comm_struct={0,};
_send_struct(char * fp)
{
static int process_num;
process_num++;
memset(&comm_struct, 00, sizeof(struct _pd_info));
comm_struct.count = process_num;
comm_struct.size = 4;
//
memcpy(&comm_struct.buf, "123abcdef", strlen("123abcdef"));
comm_struct.size += strlen("123abcdef");
memcpy(fp, &comm_struct,comm_struct.size+4 );
}
동작
Waiting to receive message from client
size 13 1 123abcdef
sent 256 bytes back to ('192.168.2.113', 50692)
Waiting to receive message from client
size 13 2 123abcdef
sent 256 bytes back to ('192.168.2.113', 50693
댓글