大家好。。我用template list创建了一个LIST.使用的是我自己创建的一个类NodeElement.
现在我遇到的问题是,在本端list可以正确写入和读出。但当我把本端的list用udp发送到另一端后,另一端成功接受后,不能正确解释出本端的list.
list<NodeElement> m_superNodeList;class NodeElement
{
public:
t_uint32 ID;
int natType;
int firewallType;
SOCKADDR_IN addr;
SOCKADDR_IN snAddr; NodeElement(t_uint32 ID, int nattype, int firewalltype, SOCKADDR_IN addr, SOCKADDR_IN supernodeAddr)
{
this->ID = ID;
natType = nattype;
firewallType = firewalltype;
this->addr.sin_addr.S_un.S_addr = addr.sin_addr.S_un.S_addr;
this->addr.sin_family = addr.sin_family;
this->addr.sin_port = addr.sin_port;
snAddr.sin_addr.S_un.S_addr = supernodeAddr.sin_addr.S_un.S_addr;
snAddr.sin_family = supernodeAddr.sin_family;
snAddr.sin_port = supernodeAddr.sin_port;
}
};
本端:sendto(m_sock, (char*)&m_superNodeList, sizeof(m_superNodeList), 0, &addr, sizeof(SOCKADDR));
这个list很小没有超过100bytes.
另一端:char buff[100];
recvfrom(udpSocket, buff, 100, 0, (SOCKADDR *)&addrRecv, &length);
memcpy(&m_superNodeList, buff, 500);
m_iterator = m_superNodeList.begin();
cout << m_iterator->ID<< endl;大家有什么办法可以解决吗?