以下是相关的程序:
CString tmp;
sendto(m_hsocket,tmp,tmp.GetLength(),0,(LPSOCKADDR)&m_addr,sizeof(SOCKADDR))
以上是发送方的程序
下面是接收方的程序
char buffer[32];
recvfrom(m_hsocket,buffer,32,0,(LPSOCKADDR)&from,&fromlen)
当tmp小于三个字符时,接收正常,
当tmp大于三个字符时,除了接收到tmp的字符外,还有其它的乱码。
这是为什么呢?还请各位大虾相助!

解决方案 »

  1.   

    CString tmp;
    sendto(m_hsocket,tmp,tmp.GetLength(),0,(LPSOCKADDR)&m_addr,sizeof(SOCKADDR))该成
    char tmp[32];
    sendto(m_hsocket,tmp,32,0,(LPSOCKADDR)&m_addr,sizeof(SOCKADDR))试试
      

  2.   

    CString tmp;
    DWORD dwSendBytes = sendto(m_hsocket,tmp,tmp.GetLength(),0,(LPSOCKADDR)&m_addr,sizeof(SOCKADDR));
    同样在RecvFrom()中查看接收的字节,并比较一下接收与发送的字节数是否一致,同时可以看看接收缓冲区的接收字节数的各数据与发送缓冲区的数据是否相等.