中易网

用mfc基于对话框 UDP 服务器端

答案:1  悬赏:20  
解决时间 2021-02-17 02:23
要用MFC基于对话框做一个使用UDP协议的服务器端,接收局域网内其他电脑发送的数据
不需要编辑控件,端口号固定比如5000,IP地址就是本机IP地址,不限定客户端的IP地址和端口号....
这应该是最简单的要求了,最好用VC6.0做的,好用的话可以再加分
把主要代码贴上来也可以,应该没多少的
最佳答案
1. 在应用程序类重载的InitInstance函数中调用AfxSocketInit()函数,加载套接字。

if(!AfxSocketInit())
{
AfxMessageBox("加载套接字库失败!");
return FALSE;
}2. 在你的对话框类中添加如下函数InitSocket(),初始化套接字BOOL CChatDlg::InitSocket()
{
m_socket=socket(AF_INET,SOCK_DGRAM,0);
if(INVALID_SOCKET==m_socket)
{
MessageBox("套接字创建失败!");
return FALSE;
}
SOCKADDR_IN addrSock;
addrSock.sin_family=AF_INET;
addrSock.sin_port=htons(5000);
addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

int retval;
retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_socket);
MessageBox("绑定失败!");
return FALSE;
}
return TRUE;

}3. 在对话框类的OnInitDialog()函数中调用上述InitSocket()函数,初始化套接字,同时创建一个线程接收数据:RECVPARAM *pRecvParam=new RECVPARAM;
pRecvParam->sock=m_socket;
pRecvParam->hwnd=m_hWnd;
HANDLE hThread=CreateThread(NULL,0,RecvProc,(LPVOID)pRecvParam,0,NULL);
CloseHandle(hThread);其中struct RECVPARAM
{
SOCKET sock;
HWND hwnd;
}; 是自定义结构体4. 接收线程函数RecvProc:
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];
int retval;
while(TRUE)
{
retval=recvfrom(sock,recvBuf,200,0,(SOCKADDR*)&addrFrom,&len);
if(SOCKET_ERROR==retval)
break;
}
return 0;
}recvBuf中就保存了你要的数据。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
死神vs火影里的六尾怎么变?
家纺的四件套磨毛面料好还是纯棉面料好?哪种
莱阳市私营企业协会龙旺庄分会地址在什么地方
企业在什么情况下引入CRM客户管理系统
10086珠海移动营业厅
小规模纳税人,营改增后,哪些项目可以抵扣进
概述雅典民主政体包含哪些政权机构
请问有谁知道从我们奉节坐船到宜昌,然后到火
康贝大药房连锁公司康晖药房我想知道这个在什
中国电信教工小区营业厅我想知道这个在什么地
毕业的女生去化工厂做化验员对身体有害吗,会
植皮后美容手多少钱
求制作小说封面! 书名:《傲世掌控》,笔名:毁
对中美关系和世界局势有何影响
安阳方远电脑学校扶贫助学基地在哪里啊,我有
推荐资讯
美少女梦工厂4有多种婚嫁结局?就是能嫁给哪
舞阳县星源小学怎么去啊,我要去那办事
仿写回延安,谢谢
月利率8厘7 三个月计复息的话应该还多少利息
衡水2月1号限什么号
山东省德州市哪里的寿衣齐全,款式新颖
java程序 为什么程序中取模得负数
隆林各族自治县审计局地址在什么地方,我要处
从赤岗到农讲所坐几路车到
谁有必柳的《总裁有点坏》啊?包括VIP和番外
y=3sinx–2/xチ0ナ5的导数怎
无限极无限养生会馆地址在什么地方,我要处理
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?