C++/MFC-套接字CSocket之UDP

在C++/MFC-套接字CSocket之一般流程中,按照C/C++UDP套接字之一般流程修改即可

一、CSocket套接字服务端修改

1、创建套接字Create(m_nPort,SOCK_DGRAM)    (注:不需要listen)

2、绑定IP和端口Bind(m_nPort,m_strIp)

3、添加成员变量 SOCKADDR_IN m_Clientaddr;

4、在???Dlg::OnReceive中用ReceiveForm接收数据

     m_ServerSocket.ReceiveFrom(buf,256,(SOCKADDR*)&m_Clientaddr,&len); //接收数据

5、用成员函数SendTo发送数据

     m_ServerSocket.SendTo(m_strMsg,len,(SOCKADDR*)&m_Clientaddr,sizeof(m_Clientaddr));// 发送消息

二、CSocket套接字客户端修改  

1、创建套接字 Create(m_nPort,SOCK_DGRAM)

     绑定IP和端口

2、添加成员变量 SOCKADDR_IN m_Serveraddr;并在OninitDialog里初始化(下面的代码用于将编辑框中的IP地址转化为多字节的)

     charstrip[222]="";

     WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,m_strIp,wcslen(m_strIp),strip,222,NULL,NULL);

      m_ServerAddr.sin_family=AF_INET;

      m_ServerAddr.sin_addr.S_un.S_addr=inet_addr(strip);

      m_ServerAddr.sin_port=htons(m_nPort);

3、用成员函数SendTo发送数据

     m_ClientSocket.SendTo(m_strMsg,len,(SOCKADDR*)&m_Serveraddr,sizeof(m_Clientaddr));// 发送消息

4、在???Dlg::OnReceive中用ReceiveForm接收数据

     m_ClientSocket.ReceiveFrom(buf,256,(SOCKADDR*)&m_Serveraddr,&len); //接收数据

 

你可能感兴趣的:(C++/MFC-套接字)