资源简介
用MFC实现了UDP的广播通信,已在本人机器上测试成功!
如果自己没运行起来,看看自己是否把该倒入的文件导入了,不要动不动就说别人。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#pragma comment(lib“ws2_32.lib“)
/*
HANDLE hrhlhbusy;
struct thrpar
{
SOCKET s;
};
struct recpar
{
SOCKET srec;
struct sockaddr_in addr;
};
UINT recthread(LPVOID pp)
{
SOCKET srecs2;
struct recpar *prec=(struct recpar *)pp;
sockaddr_in recaddr;
srec=prec->srec;
recaddr=prec->addr;
char buf[256];
DWORD ret;
printf(“recv thread start!“);
ret=recv(srecbuf2560);
if(ret==0)
{
printf(“connect close!“);
closesocket(srec);
return 0;
}
else if(ret==SOCKET_ERROR)
{
printf(“connect error!“);
closesocket(srec);
return 0;
}
printf(“recv data:%s“buf);
return 0;
}
DWORD WINAPI listhread(LPVOID pp)
{
::MessageBox(NULL“enter the listhread““KK“MB_OK);
struct thrpar *pthr=(struct thrpar*)pp;
SOCKET slsaccept;
sockaddr_in here there;
char name[256];
struct hostent *phost;
int ret;
gethostname(name256);
phost=gethostbyname(name);
here.sin_family=AF_INET;
here.sin_port=htons(1024);
here.sin_addr.S_un.S_un_b.s_b1=phost->h_addr_list[0][0];
here.sin_addr.S_un.S_un_b.s_b2=phost->h_addr_list[0][1];
here.sin_addr.S_un.S_un_b.s_b3=phost->h_addr_list[0][2];
here.sin_addr.S_un.S_un_b.s_b4=phost->h_addr_list[0][3];
sl=pthr->s;
ret=bind(sl(struct sockaddr *)&heresizeof(here));
if(ret!=0)
{
printf(“bind error“);
return 0;
}
ret=listen(sl5);
if(ret!=0)
{
printf(“listen error“);
return 0;
}
while(true)
{
int nlen=sizeof(there);
saccept=accept(sl(struct sockaddr *)&there&nlen);
if(saccept==INVALID_SOCKET)
{
printf(“accept socket invalid“);
}
DWORD wret=WaitForSingleobject(hbusy500);
if(wret==WAIT_TIMEOUT)
{
send(saccept“\0“10);
closesocket(saccept);
continue ;
}
DWORD recid;
struct recpar *prec;
prec->addr=there;
prec->srec=saccept;
hr=CreateThread(NULL0(LPTHREAD_START_ROUTINE)&listhreadprec0&recid);
return 1;
}
return 1;
}
void main(void)
{
SOCKET s;
sockaddr_in addrin;
WSADATA wsdata;
BOOL bsocket;
char *smsg=“this is a test“;
WSAStartup(0x0202&wsdata);
s=WSASocket(AF_INETSOCK_STREAM0NULL0WSA_FLAG_OVERLAPPED);
hbusy=CreateSemaphore(NULL02NULL);
struct thrpar *psc;
psc=new struct thrpar;
DWORD lisid;
psc->s=s;
hr=CreateThread(NULL0listhreadpsc0&lisid);
DWORD ret=WaitForSingleobject(hr10000);
if(ret==WAIT_object_0)printf(“thread time out%d\r\n“lisid);
}*/
void main(void)
{
SOCKET s;
sockaddr_in froma;
WSADATA wsdata;
BOOL optval;
//启动SOCKET库,版本为2.0
WSAStartup(0x0202&wsdata);
optval=TRUE;
//然后赋值给两个地址,一个
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1475 2012-02-09 16:33 udp\recv\recv.plg
文件 533 2003-10-05 20:12 udp\recv\recv.dsw
文件 3738 2003-10-05 21:08 udp\recv\recv.cpp
文件 173 2012-01-21 19:37 udp\recv\copyright.bat
文件 3587 2012-02-09 16:33 udp\recv\recv.dsp
文件 1607 2012-02-09 16:33 udp\send\send.plg
文件 533 2003-10-05 20:12 udp\send\send.dsw
文件 932 2003-10-05 21:10 udp\send\send.cpp
文件 173 2012-01-21 19:37 udp\send\copyright.bat
文件 3587 2012-02-09 16:33 udp\send\send.dsp
目录 0 2003-09-30 15:04 udp\recv
目录 0 2003-09-30 15:04 udp\send
目录 0 2012-02-09 16:33 udp
----------- --------- ---------- ----- ----
16338 13
- 上一篇:四轴飞行器简介与姿态传感器卡尔曼滤波
- 下一篇:C语言试题库适合高职院校学生使用
相关资源
- Dialog下创建 MFC OpenGL子窗口
- MFC实现计算器 vC++
- VC++点阵字生成器(MFC)
- 利用MFC实现简单的住房系统
- C++ UDP SOCKET 简单网络通讯
- Socket异步通信 MFC
- msado.dll用于ado
- 高斯混合模型直观实现
- 基于TCP的聊天室c++、MFC
- MFC图像处理荧光检测算法代码
- vc++简易图形编辑器MFC
- 第三方串口类
- MFCJunior U盘SD卡寿命测试工具
- 控制台嵌入MFC
- Visual C++ MFC Web 浏览器
- 文件传输,用MFC实现
- MFC漂亮的进度条
- VC++ MFC 如何用 CZip CUnzip类压缩解压缩
- MFC添加进度条
- MFC图元的组合,拆分,移动源代码
- Vc++6.0MFC入门教程,很好的资源。
- VC++6.0 MFC 超简易计算器
- MFC开发的与服务器通讯程序
- 用MFC画直线椭圆矩型可选择线条颜色
- MFC交通灯控制车辆运行的模拟程序
- DES加密算法MFC实现
- MFC 之 TabCtrl
- DES加密和RSA加密程序mfc源代码
- 实现三维坐标变换、投影变换,C++实
- MFC实现文件传输
评论
共有 条评论