我用CSocket作udp通讯,远端计算机向中心发送数据,如何得到远端计算机的ip地址
CString m_localIP = "192.168.1.200";
int m_lp = 6802; CString m_remoteIP = "192.168.1.22";
int m_rp = 6800;m_sockSend 是从CSocket继承void CUDPTSTDlg::OnReceive()
{
char szRecv[1500];
UINT uPort; //=6800;
int iRecv = 0, nSend;
uPort = m_lp;
iRecv = m_sockSend.ReceiveFrom(szRecv,1500, m_localIP, uPort, 0);
// 如何得到发送方的IP if( iRecv<0 ) return;
szRecv[iRecv]='\0';
m_nRevNum++;
//sprintf( szRecv, "--%d", m_nRevNum );
m_sRevStr.Format( "%s--%d", szRecv, m_nRevNum );
}void CUDPTSTDlg::OnCreat()
{
// TODO: Add your control notification handler code here UpdateData( TRUE );
m_sockSend.SetParent( this ); m_sockSend.Create( m_lp, SOCK_DGRAM );
m_sockSend.Bind( m_lp, NULL );
GetDlgItem(IDCREAT)->EnableWindow( FALSE);
GetDlgItem(IDCLOSE)->EnableWindow( TRUE );
GetDlgItem(IDC_SEND )->EnableWindow(TRUE);
GetDlgItem(IDC_MSEND )->EnableWindow(TRUE); UpdateData(FALSE);}
CString m_localIP = "192.168.1.200";
int m_lp = 6802; CString m_remoteIP = "192.168.1.22";
int m_rp = 6800;m_sockSend 是从CSocket继承void CUDPTSTDlg::OnReceive()
{
char szRecv[1500];
UINT uPort; //=6800;
int iRecv = 0, nSend;
uPort = m_lp;
iRecv = m_sockSend.ReceiveFrom(szRecv,1500, m_localIP, uPort, 0);
// 如何得到发送方的IP if( iRecv<0 ) return;
szRecv[iRecv]='\0';
m_nRevNum++;
//sprintf( szRecv, "--%d", m_nRevNum );
m_sRevStr.Format( "%s--%d", szRecv, m_nRevNum );
}void CUDPTSTDlg::OnCreat()
{
// TODO: Add your control notification handler code here UpdateData( TRUE );
m_sockSend.SetParent( this ); m_sockSend.Create( m_lp, SOCK_DGRAM );
m_sockSend.Bind( m_lp, NULL );
GetDlgItem(IDCREAT)->EnableWindow( FALSE);
GetDlgItem(IDCLOSE)->EnableWindow( TRUE );
GetDlgItem(IDC_SEND )->EnableWindow(TRUE);
GetDlgItem(IDC_MSEND )->EnableWindow(TRUE); UpdateData(FALSE);}
解决方案 »
- p2p高手请进,谁有 RakNet下载啊
- 数据包接受不完整,如何解决(90分给一人)
- 紧急求救,在任务管理器的应用程序页中隐藏基于MFC的对话框程序
- 怎么把组合框里的第一项在第一行就显示出来呢?
- 懂VC6.0的朋友,我有一個問題急需求教,謝謝!
- 更改标题栏文字大小与图标
- 请问:在delphi 里 怎么用gif动画?
- 我的一个线程函数必须做成static的,但我想在这个函数里调用其他的成员函数(非static的),这时编译通不过了。我该怎么做呢?
- 急:这个API花了我一天时间,还是???
- 用Windows API 编写串口,向串口写数据的时候出现问题了,请高手帮忙!
- ###程序如何读取并口引脚高地电平(01)状态#####
- 在edit box中显示多行内容 如何解决换行问题
iRecv = m_sockSend.ReceiveFrom(szRecv,1500, m_localIP, uPort, 0);
得到发送方的IP,我原来用当客户端发送内容给服务器时
recvfrom(sRecvSocket, recvBuf, 64, 0, (struct sockaddr FAR *)&recvAddr, (int FAR *)&nRecvLength);
其中recvAddr就是客户端的地址.
可通过
CString strIP = inet_ntoa(recvAddr.sinaddr);
获得其IP地址
但是现在用CSocket通讯,如何处理,MSDN中关于CSocket没有对应的函数