none
网络聊天程序的问题 RRS feed

  • 问题

  • MFC编写一个网络聊天程序的时候,我想利用接收子线程收到的对方地址信息来给对方发送信息,子线程中定义了stockaddr_in地址结构体储存接收到的对方地址信息,请问怎么在发送函数中调用接收子线程中的stockaddr_in结构体

    接收端代码:

    DWORD WINAPI CChatDlg::RecvProc(LPVOID lpParameter)
    {
     SOCKET sock=((RECVPARAM*)lpParameter)->sock;
     HWND hwnd=((RECVPARAM*)lpParameter)->hwnd;
     delete lpParameter;
     SOCKADDR_IN addrFrom;
     int len=sizeof(SOCKADDR);
     char recvBuf[200];
     char tempBuf[300];
     int retval;
     while(TRUE)
     {
      retval=recvfrom(sock,recvBuf,200,0,(SOCKADDR*)&addrFrom,&len);


      if(SOCKET_ERROR==retval)
       break;
      //sprintf(tempBuf,"%s说:%s",inet_ntoa(addrFrom.sin_addr),recvBuf);
      sprintf(tempBuf,"%s",recvBuf);
      ::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf);
      
     }
       return 0;
    }

    • 已移动 Jesse Jiang 2012年11月12日 8:52 (发件人:Visual C++)
    2012年11月9日 13:19

全部回复