社区
网络编程
帖子详情
udp局域网聊天程序,基本完成,有2处不明白,希望大家指点
devspace
2004-01-01 05:04:42
如题,问题描述在NetBrocastDlg.cpp的ReceiveMessageAndShow函数中(即接收udp数据报的线程函数)描述的很清晰,希望大家能帮帮忙,100分以谢,问题不难~
这是代码和程序地址:http://tasm.51.net/question/NetBrocast.rar
另祝大家新年快乐
...全文
55
6
打赏
收藏
udp局域网聊天程序,基本完成,有2处不明白,希望大家指点
如题,问题描述在NetBrocastDlg.cpp的ReceiveMessageAndShow函数中(即接收udp数据报的线程函数)描述的很清晰,希望大家能帮帮忙,100分以谢,问题不难~ 这是代码和程序地址:http://tasm.51.net/question/NetBrocast.rar 另祝大家新年快乐
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
howtotell
2004-01-01
打赏
举报
回复
void CNetBrocastDlg::OnSend()
{
// TODO: Add your control notification handler code here
UpdateData();
CString ip_from_control;//取得要投递消息的地址
CComboBox* pCB=(CComboBox*)GetDlgItem(IDC_COMBO_IP);
pCB->GetWindowText(ip_from_control);
//发送消息代码
if( m_the_send_data != "" )
{
//下面发送消息,是否要在程序开始创建套接字?
SOCKET s;
sockaddr_in addrto;
WSADATA wsdata;
BOOL bsocket;
CString smsg;
if(ip_from_control=="")
{
MessageBox("必须指定发送地址","错误",MB_ICONSTOP);
return;
}
else if(ip_from_control=="所有人")
{
CString m_addrBroadCast=m_myIP;
int len=m_addrBroadCast.ReverseFind('.');
m_addrBroadCast.Delete(len,m_addrBroadCast.GetLength()-len);
m_addrBroadCast+=".255";
ip_from_control=m_addrBroadCast;
smsg=m_computername + " 对 "+"所有人"+"说:"+m_the_send_data;
}
else
{
smsg=m_computername + " 对 "+ip_from_control+"说:"+m_the_send_data;
}
//启动SOCKET库,版本为2.0
WSAStartup(0x0202,&wsdata);
s=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_OVERLAPPED);
bsocket=TRUE;
//然后赋值给地址,用来从网络上的广播地址接收消息;
addrto.sin_family=AF_INET;
addrto.sin_addr.s_addr=inet_addr(ip_from_control);//INADDR_BROADCAST;
addrto.sin_port=htons(m_send_port);
bool opt=true;
//设置该套接字为广播类型,
setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt));
int nlen=sizeof(addrto);
//从广播地址发送消息
int ret=sendto(s,smsg,256,0,(sockaddr*)&addrto,nlen);
if(ret==SOCKET_ERROR)
MessageBox("send error");
else
{
//MessageBox("ok");
}
//关闭套接字
}
else
{
AfxMessageBox( " 不能发空消息 " );
}
WSACleanup();
//清空发送文本框
g_dlg->m_the_send_data="青山不改,绿水长流,咱们后会有期";
UpdateData(FALSE);
//文本框设为焦点
CEdit* pToEdit=(CEdit *)GetDlgItem(IDC_EDIT_SEND);
pToEdit->SetFocus();
}
sharkhuang
2004-01-01
打赏
举报
回复
ding
devspace
2004-01-01
打赏
举报
回复
第2个问题搞定了,剩下第一个:
为什么本机上发送一个udp数据报,网络上的收到一个消息,而本机却收到了3个?
大家帮忙看看代码
Jasonn
2004-01-01
打赏
举报
回复
UPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUP
UPUPUPUPUPUPUPUPUPUPUPUP
RomanticProgrammer
2004-01-01
打赏
举报
回复
up
sboom
2004-01-01
打赏
举报
回复
贴到这里来。
服务器开发基础-
udp
/ip网络模型
这部教程是windows网络编程课程的第二部分课程:基于
udp
/ip协议的网络模型 网络编程是互联基石,是
程序
猿基础必备技能,咱们这部
UDP
/IP课程为大家介绍有关于
UDP
/IP
基本
理论知识的分析,以及5个常用的网络模型,课程...
利用WinPcap模拟网络包伪造飞秋闪屏报文
老闪回去也比较麻烦,作为
程序
猿呢,有没有什么偷懒的办法呢?(同事负责用户体验,不大懂编程)。然后尝试了以下思路: UI自动化 利用UISpy查看飞秋
聊天
窗口,悲催的发现找不到发送闪屏振动的按钮。 模拟鼠标事件...
高负载高并发网站架构分析
由于自己正在做一个高性能大用户量的论坛
程序
,对高性能高并发服务器架构比较感兴趣,于是在网上收集了不少这方面的资料和大家分享。
希望
能和大家交流 msn: defender_ios@hotmail.com ————————————...
PHP 面试知识点整理归纳
全文已整理补充完毕,以后还...lz也是初学者,以下知识点均为自己整理且保持不断更新,也
希望
各路大神多多
指点
,若发现错误或有补充,可直接comment,lz时刻关注着。 由于内容比较多,没有直接目录,请自行对照 Gi...
编写大并发高负载通讯
程序
编写大并发高负载通讯
程序
, 代码众多.
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章