局域网中,UDP传输在断线又恢复后,对方收不到数据了.UDP应该是无连接的呀,怎么会这样呢?附代码.

prettywolf 2005-09-11 09:29:36
UINT WorkThread(LPVOID param)
{
SOCKET s;
sockaddr_in addrto;
WSADATA wsdata;
BOOL bsocket;
char *smsg="this is a test";
//Start SOCKET lib£¬version is 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("192.168.10.255");//INADDR_BROADCAST;
addrto.sin_port=htons(5050);
bool opt=true;
//set this socket to Broadcast£¬
setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt));
int nlen=sizeof(addrto);
while(1)
{
Sleep(5000);
//sendto the broadcast address
int ret=sendto(s,smsg,256,0,(sockaddr*)&addrto,nlen);
if(ret==SOCKET_ERROR)
MessageBox(NULL,"Error!","Warming!",MB_OK);//cout<<WSAGetLastError()<<endl;

}
}
这段代码是线程执行.
...全文
362 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DentistryDoctor 2005-09-13
  • 打赏
  • 举报
回复
?
mynamelj 2005-09-13
  • 打赏
  • 举报
回复
是不是网没有插好?
prettywolf 2005-09-13
  • 打赏
  • 举报
回复
那个地址是没错的,不过一般不这样写.应该是:INADDR_BROADCAST,我只是测试用.
原因在这里:
if(ret==SOCKET_ERROR) MessageBox(NULL,"Error!","Warming!",MB_OK);
当断线后,ret=SOCKET_ERROR 所以弹出一个消息框,等待按确定.程序到这里不继续执行下去了.
你说晕不晕.
所以说是常识性错误.
flashboy 2005-09-13
  • 打赏
  • 举报
回复
失败的地方试验着SLEEP一会后重试几下, 应该可以的。
alen_ghl 2005-09-13
  • 打赏
  • 举报
回复
所以说尽量别用模式对话框来进行提示,特别是后台程序,不然阻塞线程而无法继续工作
nuaawenlin 2005-09-12
  • 打赏
  • 举报
回复
不明白

既然设置了广播

为何又要指定一个特定的不是广播地址的目的地址?????
oyljerry 2005-09-12
  • 打赏
  • 举报
回复
估计楼主解决了,^_^,jf
howtotell 2005-09-11
  • 打赏
  • 举报
回复
没有明白楼主的意思。
prettywolf 2005-09-11
  • 打赏
  • 举报
回复
常识性错误!
晕.
1、本软件可以实现通过网络转换成串口,或者串口转串口,网络转网络形式,将数据的原始包进行转发(数据透明传输)。 2、虚拟串口需要安装串口驱动,目前支持WIN2k、XP及WIN7操作系统。 3、如果是通过网络连接,在网络连接时间内没有数据传送,可以设置系统自动断开的时间长度,默认600s 4、本软件支持花生壳域名解析服务启动、停止,如果需要域名解析请联系我,我将给您提供一个用户名及密码,来完成此项功能。 5、如果是自动打开连接选择了,则系统在下一秒内自动再次连接;本软件可以设置成随操作系统自动启动。 6、(串口连串口)客户端连接方式选择串口,出现用户可以创建的虚拟串口(必须先安装串口驱动),连接设置后一个输入框是设定串口数据帧间间隔时间长度,系统默认设置为20ms,如果用户需要快的数据应答可以设置为1ms;用户的软件连接启动一个串口,本软件连接一个串口,比如:选择创建OCM4和COM5 在客户端连接方式选择COM4,用户软件选择COM5,在连接服务器端选择系统存在的一个串口比如COM1,连接到用户的设备或者仪器仪表,通过显示数据就看看到整个数据通信包。 7、(网络连网络)在客户端或服务器端选择连接方式,目前客户端支持TCP/UDP方式,服务器端支持TCP方式,可实现由UDP转为TCP连接方式的数据传输。 8、(网络连串口)与6、7说明一致,只是把网络数据包转换成串口数据包,或串口数据包转换成网络数据包,以上3种方式支持自动连接。 9、网络连接方式设置,连接服务器端设置及状态栏,选择客户端连接方式,可以设置注册包和心跳包,第一个是注册包是网络连接到用户指定的IP地址和端口后,发送的一个数据包,第三个是心跳包,可以设置在连接过程每(默认60s)发送一个心跳包给对方的连接,一般是针对组态软件设定的,如果是用户自己编程的可以留空,(留空是不进行发送数据) 选择服务器连接方式,可以启动辅助监听方式,如果输入设备名称后,默认客户端连接的第一个数据包为注册包,以后的数据包和心跳包相同的话为心跳包,其余为用户数据包,进行转发,如果未锁定连接,则第二个TCp连接直接替代第一个TCP连接。 10、在连接方式选择网络时,可以启动服务器监听,并打开端口,如果有外来的连接连接到监听端口,如果外来连接发送过来注册包(连接开始后的第一个数据包),和设置的设备名称一致,则系统自动连接设置的对方IP地址修改成这个外来连接的地址,客户端再去主动连接这个IP和端口,这方式一般针对外来IP地址是动态的并且能主动连接到本系统,如果有连接不清楚可以联系QQ16148947(这种方式用户很少用到) 11、在连接方式选择服务器端是,如果设备名称不输入,这是所有的连接默认接入就直接使用,如果有输入设备名称,则可以过滤连接,并且外来连接连接后,第一个数据包认为为注册包,应该为设备名称对应,否则不进行数据转发,且下一个连接来后直接替换该连接,如果设备名称和客户连接的一个数据相同的话,就进行当前连接,不理其他的连接,(如果在无数据通信断线的情况下,也自动断开) 12、如需要连接TDU,则可以选择服务端的服务器方式,并打开辅助监听端口,把端口设置成一致,如果有注册包,则在“设备名称输入”,如果有心跳包,则在“心跳”输入,支持英文及数字。 13、支持启动域名服务,远程只需要输入域名及端口就可以进行远程连接到本系统! 14、支持串口数据监控功能,在服务器端,选择相应的串口,在启动监控后对相应的选项进行选择,则可以对串口数据进行监控显示,方便用户分析通信数据包! 15、只要显示两边的状态是在连接...就能对在线的2个网络连接实现互通数据包; 16、调试状态下网络或串口模式能显示应答的时间长度;能进行Modbus协议的读写操作;字节数据转换为浮点数或双精度数! 17、双击连接设置输入框,能获取本机局域网所在的外网IP地址! 18、双击发送或接收或“清”按钮能清空计数及显示字符. 19、谢谢欢迎提供改进意见;也可以进行有偿软件定制功能,如果您在使用,联系QQ16148947或请加入群:72950899;我们一起探讨升级;请注明远程数据模块连接
可将 TTL/UART 串口设备连接至以太网 支持网口升级程序 支持TCP服务器、TCP客户端、UDP模式 支持虚拟串口、Web登录或使用VirCom进行配置 ZLSN2003 概述 ZLSN2003是上海卓岚开发的新一代串口转以太网嵌入式模块。该模块功能强大,其基本功能是实现串口联网的方便性,即只要和用户的串口TTL电平的串口连接,ZLSN2003就可以将数据发送到基于TCP/IP/UDP的网络服务器上。默认情况下串口和以太网之间是透明传输协议,即串口发送什么,网络就收到什么数据,不数据格式转化。ZLSN2003内部已经集成网络变压器,外围电路非常简单。 ZLSN2003模块为单片机联网、传统串口设备联网提供了快捷、稳定、经济的方案。不仅能够保证您的产品快速上市,并且为您的产品的稳定提供支撑。 特点 支持在线网络升级固件程序,用户可以从卓岚公司获得软件升级工具和升级firmware,可自行升级到最高版本。 使用配置的ZLVircom工具可以搜索、管理局域网内(支持跨网段搜索)、Internet上的ZLSN2003模块。可一键式配置模块的所有参数。设备配置、管理非常方便。 支持DHCP功能,可以动态获得局域网内的DHCP服务器分配的IP。 支持DNS,自动解析目的域名为IP,目的IP可以为动态域名。 作为TCP Server(TCP服务器端)时,支持独有的100个连接的强大连接能力。 作为TCP Client(TCP客户端)的,支持连接8个目标服务器。作为TCP客户端时,可以在断线后自动进行重连。支持隐含心跳技术,保证网线断线后的恢复。 支持UDPUDP组播等功能。 支持虚拟串口。 规格 网络界面 以太网 10/100 Mbps 保护 内建1KV电磁隔离 串口界面 界面 TTL电平串口 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR,XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 95/98/ME/NT/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC5V(ZLSN2003-3.3V支持3.3V),210~250mA 机械特性 尺寸 长×宽=43 × 26mm 工作环境 工作温度,湿度 0~70℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W
◆ 01.htm 1、怎么用mscomm控件检测modem是否与计算机联接正确?2、如何用mscomm挂断modem与别的电话机间的连接?(已接通) ◆ 02.htm CWinInetConnection---一个封装了WinInet API函数的类 ◆ 03.htm MODEM通讯意外处理 ◆ 04.htm MsComm 文字传输 ◆ 05.htm PING一个IP地址(向它发送一个数据包并等待回应) ◆ 06.htm SMTP协议简介 (Simple Mail Transfer Protocol) ◆ 07.htm VB5.0 远程数据库的访问 ◆ 08.htm VB下如何编写CRC校验程序 ◆ 09.htm VBWinsock控制的UDP协议的使用 ◆ 10.htm Visual Basic 6发送邮件的新方法 ◆ 11.htm Visual Basic通信程序设计 ◆ 12.htm Whois 示例程序 ◆ 13.htm Winsock Terminal示例程序 ◆ 14.htm WinSock断开导致客户端问题 ◆ 15.htm 把Outlook信箱件另存为 ◆ 16.htm 保证连网计算机时间同步 ◆ 17.htm 编写网络寻呼机 ◆ 18.htm 编制自已的电话录音小程序 ◆ 19.htm 程序如何启动默认的拨号连接 ◆ 20.htm 程序如何启动默认的拨号连接? ◆ 21.htm 打开器并进入指定网址 ◆ 22.htm 打开一个直接到自己主页的器 ◆ 23.htm 得到用户的IP地址 ◆ 24.htm 电话拨号 ◆ 25.htm 电子邮件的标准格式 (RFC 822) ◆ 26.htm 断开拨号网络的连接 ◆ 27.htm 断开与 Internet 的连接 ◆ 28.htm 发送电子邮件件 ◆ 29.htm 发送电子邮件件1 ◆ 30.htm 发送电子邮件件2 ◆ 31.htm 发送电子邮件件3 ◆ 32.htm 发送电子邮件件4 ◆ 33.htm 获得用户网络登录名 ◆ 34.htm 基 于Win95 的VB5 串 口 通 信 程 序 ◆ 35.htm 基于Win95的VB5串口通信程序 ◆ 36.htm 几个设置IE的API ◆ 37.htm 检测运程数据传送的断线 ◆ 38.htm 简单的聊天程序 ◆ 39.htm 简单电子邮件发送程序 ◆ 40.htm 建立拨号联接 ◆ 41.htm 将所有窗口最小化 ◆ 42.htm 利用IE控件访问Internet ◆ 43.htm 利用IE控件设计简易器 ◆ 44.htm 利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号时是否遇忙音 ◆ 45.htm 利用TAPI进行电话拨号 ◆ 46.htm 利用VB访问Internet ◆ 47.htm 利用VB设计聊天室 ◆ 48.htm 利用Visual Basic实现无线通讯 ◆ 49.htm 利用Winsock控件实现局域网通信 ◆ 50.htm 强制一个本地或远程NT系统关闭 ◆ 51.htm 取得网卡序列号 ◆ 52.htm 如何从 Internet 上取回某一个网页的內容? ◆ 53.htm 如何检测是否已连接到Internet? ◆ 54.htm 如何利用Winsock控件编写自己的Internet程序 ◆ 55.htm 如何每天抓取 Internet 上某一个网页的图片来更换桌面的壁纸? ◆ 56.htm 如何启动拨号网路的连线? ◆ 57.htm 如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序 ◆ 58.htm 如何通过VB获取网卡地址 ◆ 59.htm 如何用VB打开默认器或默认发信程序? ◆ 60.htm 如何用Visual Basic编写小型的网络系统 ◆ 61.htm 如何在程序启动 NT 的【拨号连接】对话框 ◆ 62.htm 如何在程序启动 NT 的【拨号连接】对话框? ◆ 63.htm 如何在网页上使用 VB5 制作的 ActiveX 控件? ◆ 64.htm 如何断【拨号网络连接】 ◆ 65.htm 设计Browser及FTP程序 ◆ 66.htm 设计Chat程序 ◆ 67.htm 设计E-mail程序 ◆ 68.htm 设置计算机名称 ◆ 69.htm 使用VB获得一页的HTML代码 ◆ 70.htm 使用VB收发电子邮件 ◆ 71.htm 使用标签控件调出器 ◆ 72.htm 使用超链接和发送Email ◆ 73.htm 使用器的文件复制对话框 ◆ 74.htm 输入/输出篇 ◆ 75.htm 通过WnetEnumResource函数获得网络资源 ◆ 76.htm 通往 Internet 的捷径 ◆ 77.htm 显示计算机的名称 ◆ 78.htm 用 MAPI 控件实现发送邮件 ◆ 79.htm 用 WinSock 控件下载文件 ◆ 80.htm 用 Winsock 实现聊天的程序 ◆ 81.htm 用Internet Transfer编写FTP程序 ◆ 82.htm 用Sockets发送电子邮件 ◆ 83.htm 用VB 创 建 自 己 的 通 信 程 序 ◆ 84.htm 用VB5.0开发通信软件的技巧 ◆ 85.htm 用VB5开发IE ◆ 86.htm 用VB编写网络寻呼 ◆ 87.htm 用VB编写小型的网络系统 ◆ 88.htm 用VB创建自己的通信程序 ◆ 89.htm 用VB构建Internet的应用[微软提供] ◆ 90.htm 用VB开发标准CGI程序 ◆ 91.htm 用VB实现客户——服务器(TCP IP)编程实例 ◆ 92.htm 用VB实现客户服务器(TCP、IP)编程实例 ◆ 93.htm 用VB实现聊天讨论室和点对点话 ◆ 94.htm 用VB写一个定时PING某IP的程序 ◆ 95.htm 用VB制作器 ◆ 96.htm 用Visual Basic 5.0设计E-mail程序(MAPI) ◆ 97.htm 用Visual Basic6.0编写客户服务器程序 ◆ 98.htm 用Visual Basic创建FTP组件 ◆ 99.htm 用Visual Basic开发数据库器 ◆ 100.htm 用Visual Basic轻松地设计Browser及Ftp程序 ◆ 101.htm 用Winsock控件发信Email ◆ 102.htm 用Winsock控件实现文件的下载 ◆ 103.htm 用Winsock实现点对点通信 ◆ 104.htm 邮件检查程序(二) ◆ 105.htm 邮件检查程序(一) ◆ 106.htm 在VB程序怎样挂断拨号网络 ◆ 107.htm 在VB操纵OLE服务器应用程序 ◆ 108.htm 在VB利用UDP协议编写聊天程序 ◆ 109.htm 在VB模拟实现邮件传输 ◆ 110.htm 在VB如何得到网络某一台电脑(电脑名)的网卡地质? (自己的) ◆ 111.htm 在VB实现文件上传 ◆ 112.htm 在VB实现文件上载 ◆ 113.htm 在VB使用UDP协议 ◆ 114.htm 在VB用Outlook发电子邮件 ◆ 115.htm 在WindowsNT网络广播消息 ◆ 116.htm 在程序打开 Internet 拨号连接窗口 ◆ 117.htm 在一个单位内部或通过广域协议(如X.25)互联的行业内部都有几十或上万台计算机互联,用Intranet虽然可以建立聊天室,但实现点对点实时对话却比较困难。本人用Winsock和VB自制了一套聊天室和对话系统,特拿来供同行们参考。 ◆ 118.htm 在应用集成器 ◆ 119.htm 在桌面上建立一个 Internet 快捷键 ◆ 120.htm 怎样接收电子邮件(POP3协议简介) ◆ 121.htm 怎样用VB得知系统当前是否处于internet链结状态 ◆ 122.htm 制作自己的网络搜索软件 ◆ 123.htm 自动更新工作站的应用程序 ◆ 124.htm 自己的IE——用VB制作器 ◆ 125.htm HTTP协议(学习笔记) ◆ 126.htm HTTP协议四--关于Chunked编码 ◆ 127.htm IE器完全控制 ◆ 128.htm OICQ服务器系统通讯协议 ◆ 129.htm POP3协议的基本命令 ◆ 130.htm RAS API上的其他Function ◆ 131.htm VB + API 获取 IE 的 “代理服务器” 配制 ◆ 132.htm vb调用winInet API接口post数据到指定的url ◆ 133.htm vb开发通信软件 ◆ 134.htm vb设计数据库电子邮件程序(1) ◆ 135.htm vb设计数据库电子邮件程序(2) ◆ 136.htm vb设计数据库电子邮件程序(3) ◆ 137.htm vb设计数据库电子邮件程序(4) ◆ 138.htm vb设计数据库电子邮件程序(5) ◆ 139.htm vb设计数据库电子邮件程序(6) ◆ 140.htm VB实现应用程序在局域网上自动更新 ◆ 141.htm VB邮件检查程序 ◆ 142.htm vb从域名得到IP及从IP得到域名 ◆ 143.htm VB检测是否连网 ◆ 144.htm WebClass实现动态WEB编程之理论篇 ◆ 145.htm Winsocket网络编程谈 ◆ 146.htm Winsock编程框架 ◆ 147.htm Winsock错误代码一览表 ◆ 148.htm 程式自动呼叫拨号网络(RAS API) ◆ 149.htm 打开一个超连接 ◆ 150.htm 得到登入windows 的人的id ◆ 151.htm 访问Internet并调用Explorer ◆ 152.htm 非同步文件下载类 ◆ 153.htm 给Outlook的所有用户发送信件 ◆ 154.htm 获得网卡的MAC地址 ◆ 155.htm 基于WinSock的小型网络管理系统及其实现 ◆ 156.htm 检测是否连接到Internet ◆ 157.htm 检测网络是否连通 ◆ 158.htm 建立Web的超链接树形图 ◆ 159.htm 建立你自己的器-Properties ◆ 160.htm 建立你自己的器-查看源文件 ◆ 161.htm 建立你自己的器-打印 ◆ 162.htm 建立你自己的器-打印设置 ◆ 163.htm 建立你自己的器-发送到FontPage ◆ 164.htm 建立你自己的器-发送到Visual Interdev ◆ 165.htm 建立你自己的器-发送到软盘 ◆ 166.htm 建立你自己的器-复制 ◆ 167.htm 建立你自己的器-另存为 ◆ 168.htm 建立你自己的器-全选 ◆ 169.htm 建立你自己的器-页面设置 ◆ 170.htm 开发通信软件的技术与技巧 ◆ 171.htm 开发网络应用的5个技巧 ◆ 172.htm 利用RAS调用在VB6.0实现拨号上网 ◆ 173.htm 利用VB提取HTML文件的EMAIL地址 ◆ 174.htm 枚举出局域网上所有网络资源 ◆ 175.htm 面向Internet的开发工具 ◆ 176.htm 你也可以YAI--VB5Winsock控件的使用 ◆ 177.htm 判断一个文件是否在IE的缓存 ◆ 178.htm 启动拨号网络连接 ◆ 179.htm 浅谈HTTP协议(二)--返回值 ◆ 180.htm 浅谈HTTP协议(一)--结构 ◆ 181.htm 如何利用 WebBrowser 控件显示 .GIF 动画? ◆ 182.htm 如何映射(断网络磁盘) ◆ 183.htm 设计E-mail的接收部分 ◆ 184.htm 设置器默认网址 ◆ 185.htm 实现端口对端口的聊天 ◆ 186.htm 使用ASP建立Http组件 ◆ 187.htm 使用VB编写纯ASP程序 ◆ 188.htm 使用vb获取网上邻居里的计算机名 ◆ 189.htm 使用VB建立Web Server ◆ 190.htm 使用Visual Basic开发通讯软件 ◆ 191.htm 使用资源工具包执行本地和远程重新启动 ◆ 192.htm 谈谈远程控制关于搜索、控制计算机的功能 ◆ 193.htm 压缩 Html ◆ 194.htm 用ASP、VB和XML建立互联网应用程序(1) ◆ 195.htm 用ASP、VB和XML建立互联网应用程序(2) ◆ 196.htm 用ASP、VB和XML建立互联网应用程序(3) ◆ 197.htm 用ASP、VB和XML建立互联网应用程序(4) ◆ 198.htm 用COMMUNICATION控件进行数据采集(学习笔记) ◆ 199.htm 用OLE自动化Outlook ◆ 200.htm ActiveX控件用于DHTML开发 ◆ 201.htm 用VB编写ActiveX DLL实现ASP编程 ◆ 202.htm 用VB编写Windows CGI应用程序 ◆ 203.htm 用VB编写标准CGI程序(上) ◆ 204.htm 用VB编写标准CGI程序(下) ◆ 205.htm 用VB编写收发电子邮件程序 ◆ 206.htm 用VB编写网络监控软件 ◆ 207.htm 用VB编写异步多线程下载程序 ◆ 208.htm 用VB导入导出IE器收藏夹 ◆ 209.htm 用VB定制合路器 ◆ 210.htm 用VB和XML建立集式应用程序 ◆ 211.htm 用VB将Html转换为文本文件 ◆ 212.htm 用VB开发分布式应用 ◆ 213.htm 用VB设计基于代理服务器的网络计费系统 ◆ 214.htm 用VB制作文件下载程序 ◆ 215.htm 用Visual Basic 实现无线通讯 ◆ 216.htm 用Winsock制作一套聊天室和对话系统 ◆ 217.htm 远程共享显示及声音的实现 ◆ 218.htm 远程启动机器ABC API解决方案 ◆ 219.htm 远程启动机器ABC WMI解决方案 ◆ 220.htm 在VB5利用Winsock和msDNS控件进行 ◆ 221.htm 找出计算机上当前登录入网的用户 ◆ 222.htm 用VB5 Winsock控件创建TCP(IP)客户机 服务器程序

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧