代码如下:
MsgPacket msgPacket;
strcpy(msgPacket.Head.msgid,"0001");
strcpy(msgPacket.Head.length,"0274");
strcpy(msgPacket.Head.seq,"");
strcpy(msgPacket.Msg.phone,"12345678912");
strcpy(msgPacket.Msg.icpno,"123456");
strcpy(msgPacket.Msg.msg,"MGDQZDSAAle");
strcpy(msgPacket.Msg.reserved,"");
if (send(ServerSocket,(char *)&msgPacket,sizeof(msgPacket),0)!= SOCKET_ERROR)
{
AfxMessageBox("发送成功");
}
else
{
AfxMessageBox("发送失败");
}
执行这段代码时.总提示:"0x006322bf 处未处理的异常: 0xC0000005: 读取位置 0x00000001 时发生访问冲突"
是什么原因啊....但发送其它的结构就没问题

解决方案 »

  1.   

    sizeof(msgPacket)这里不是直接取的发送数据包的长度啊.
      

  2.   

    lz的msgPacket大小是多大?然后memcpy这么多的数据进来大小够么?
      

  3.   

    struct MsgPacket
    {
    PacketHead Head;
    PacketMsg Msg;
    };
    struct PacketMsg
    {
    char icpno[20]; 
    char phone[20]; 
    char msg[200]; 
    char reserved[8]; 
    };
    struct PacketHead
    {
    char length[8]; 
    char msgid[8]; 
    char seq[10];     
    };
      

  4.   

    阻塞还是非阻塞?
    如果是阻塞的话,从这段代码看不出问题,建议使用try ... catch,看看具体出在哪一段代码。
      

  5.   

    MsgPacket   msgPacket; 
    //加上串结束符
    strcpy(msgPacket.Head.msgid,"0001\0"); 
    strcpy(msgPacket.Head.length,"0274\0"); 
    strcpy(msgPacket.Head.seq,"\0"); 
    strcpy(msgPacket.Msg.phone,"12345678912\0"); 
    strcpy(msgPacket.Msg.icpno,"123456\0"); 
    strcpy(msgPacket.Msg.msg,"MGDQZDSAAle\0"); 
    strcpy(msgPacket.Msg.reserved,"\0");
    int SentCount = 0; 
    while(1)
    {
      int SendRet = send(ServerSocket,(char   *)((int)&msgPacket+SentCount),sizeof(msgPacket)-SentCount,0);
      if (SendRet != SOCKET_ERROR) 
      { 
        if (SendRet == 0)//网络断开
        {
          AfxMessageBox("网络断开!");
          break; 
        }
        SentCount += SendRet;//拷贝到缓冲区成功
        if (SentCount == sizeof(msgPacket))//发送完毕
        {
          AfxMessageBox("发送成功"); 
          break;
        }
      } 
      else 
      { 
        if(WSAWOULDBLOCK != WSAGetLastError())//WSAWOULDBLOCK表示待发送缓冲区已满
        {
          AfxMessageBox("发送失败"); 
          break;
        }
      }

      

  6.   

    ...还是不行...
    不过谢谢 unsigned ..
      

  7.   

    为struct   MsgPacket里面的两个struct分配空间??
    你试一下.