【发布时间】:2011-11-10 21:26:51
【问题描述】:
我一直在尝试从客户端接收数据包,但是在 recvfrom() 过程中,我认为我做错了什么......
我有一个名为 DataPacket 的东西,它只是一个具有一些 x 和 y 值的类
客户端执行以下操作...
int UDPCon::Send(DataPacket dPacket)
{
int n = sendto(m_Socket, (char *)&dPacket, PACKETSIZE, 0, (struct sockaddr *)&m_RemoteAddress, m_SocketAddressSize);
return n;
}
并且服务器接收到
int CUDPSocket::Receive(DataPacket *data)
{
int n = recvfrom(m_Socket, (char *) &data, PACKETSIZE, 0, (struct sockaddr *)&m_RemoteAddress, &m_SocketAddressSize);
return n;
}
当我只是简单地发送字符而不进行强制转换时,这曾经有效,因此代码确实有效。我认为我对指针做错了,只要 recvfrom() 将数据放入“数据”,DataPacket“数据”就变成“无法评估表达式”
非常感谢任何帮助
谢谢
【问题讨论】:
-
DataPacket 是一个带有 int x, y 的类;差不多就是这样。这在上课之前确实有效,唯一的区别是我传递了一个指针,以便编辑值。
-
那么,该类与 PACKETSIZE 有什么关系?
标签: c++ visual-studio networking udp