采用UDP方式,同时向已知ip、同一端口的客户端发同一条信息?

问题描述

采用UDP方式,for循环同时向已知ip、同一端口的客户端发同一条信息,运行时会提示只能打开一次ip端口,问你是否继续处理?这么问题该如何处理?用多线程吗?

解决方案

解决方案二:
你的bind语句重复执行了。
解决方案三:
privatevoidSendMsgToAll(ClassMsgmsg)//SendMsgToAll(ClassMsgmsg)//发送消息给所有用户{try{//QQClass.UDPSocketudp=newQQClass.UDPSocket();foreach(System.Windows.Forms.ListViewItemiteminthis.LV_SysUser.Items){System.Net.IPAddressip=System.Net.IPAddress.Parse(item.SubItems[1].Text);intport=Convert.ToInt32(item.SubItems[2].Text);udpSocket1.Send(ip,port,newClassSerializers().SerializeBinary(msg).ToArray());}}catch{}}语句是这么样写的,通过循环读取用户ip、端口,然后一条条发出去,但是会提示你只能udpsocket1只能用一次ip、端口
解决方案四:
急哦,在先等??
解决方案五:
for循环里面不能放UdpClientclient=newUdpClient(IPEndPoint)或Socket.Bind之类的代码,这些代码要放在进入循环以前的位置,否则就会导致同一IP+Port重复绑定的错误
解决方案六:
但是我要一条一条读取出ip,port然后发送出去,我要怎么改这个代码哦??请高手门帮给我改改代码,要怎么做??
解决方案七:
不知道你的udpSocket1什么?也不知道你的udpSocket1.Send(...)怎样写的。
解决方案八:
楼主,你这段代码是用了一个socket对象,一次连接以后不断发给不同对象。既然已经提示你一次只能绑定一个,那就在for里面newudpsocket.
解决方案九:
我定义了一个控件publicpartialclassUDPSocket:Component{privateIPEndPointServerEndPoint=null;//定义网络端点privateUdpClientUDP_Server=newUdpClient();//创建网络服务,也就是UDP的SocketsprivateSystem.Threading.ThreadthdUdp;//创建一个线程publicdelegatevoidDataArrivalEventHandler(byte[]Data,IPAddressIp,intPort);//定义了一个托管方法publiceventDataArrivalEventHandlerDataArrival;//通过托管理在控件中定义一个事件privatestringlocalHost="127.0.0.1";[Browsable(true),Category("Local"),Description("本地IP地址")]//在“属性”窗口中显示localHost属性publicstringLocalHost{get{returnlocalHost;}set{localHost=value;}}privateintlocalPort=11000;[Browsable(true),Category("Local"),Description("本地端口号")]//在“属性”窗口中显示localPort属性publicintLocalPort{get{returnlocalPort;}set{localPort=value;}}privateboolactive=false;[Browsable(true),Category("Local"),Description("激活监听")]//在“属性”窗口中显示active属性publicboolActive{get{returnactive;}set//该属性读取值{active=value;if(active)//当值为True时{OpenSocket();//打开监听}else{CloseSocket();//关闭监听}}}//发消息的方法publicvoidSend(System.Net.IPAddressHost,intPort,byte[]Data){try{IPEndPointserver=newIPEndPoint(Host,Port);UDP_Server.Send(Data,Data.Length,server);}catch(Exceptione){MessageBox.Show(e.ToString());}}
解决方案十:
你考虑把类内的udpsocket对象放出来,在for里面newudpsocket,再把这个udp放入你的类里面。
解决方案十一:
坐等高手解答
解决方案十二:
运行时怎么会“运行时会提示只能打开一次ip端口,问你是否继续处理”,是谁抛出的这个对话框?是你的程序自己写的代码?还是杀毒软件?还是vs调试器?把你的多余的try...catch去掉(屏蔽掉),让调试器自动停在出错的语句上,贴出你真正抛出异常的画面截屏。如果连哪一条语句抛出异常,那无法调试。
解决方案十三:
如果连哪一条语句抛出异常都无法准确捕获,那无法调试。
解决方案十四:
”只能打开一次ip端口“这个提示是你自己程序的提示还是产生异常的提示?没说清楚

时间: 2024-10-29 19:02:01

采用UDP方式,同时向已知ip、同一端口的客户端发同一条信息?的相关文章

android-Android怎么编程实现一台手机访问另一台手机(已知ip,port和文件路径)资源?

问题描述 Android怎么编程实现一台手机访问另一台手机(已知ip,port和文件路径)资源? 两台手机在同一局域网下,手机访问服务器时服务器端时,服务器需关闭防火墙才能允许手机访问,这个我已实现.我想问手机访问手机时,是否也需要什么权限类的东西,还是我的写法有问题. 如: Tomcat下服务器端ip:192.168.1.100 ,端口8088,资源在webapps下blog/test.mp4下,那手机端可以访问:http://192.168.1.100:8088/blog/test.mp4;

朝鲜互联网:全国只有1024个已知IP,包月545美元

朝鲜互联网:全国只有1024个已知IP,包月545美元朝鲜22日 下午开始出现互联网非常不稳定状况,基本处于"网络无法连接"状态,23日上午网络基本恢复.这让外界猜测朝鲜断网是否是美国因为索尼影业被黑事件而采取的报复行动.这一断网事件引发外界对朝鲜互联网建设水平的关注,<环球时报>记者通过各种碎片化的信息试图拼凑出朝鲜网络发展的概况.核心机构和人员才能上互联网朝鲜目前互联网民用化普及率还不太高,一般是比较核心的机构和人员在使用,朝鲜也从未公开过有关国内互联网基础建设与运营的

在已知IP的基础上批量管理cluster IP脚本

由于近期时间颇紧,代码实现及测试暂时无暇顾及了,此处仅作思考记录: 依赖条件: 1.得知所有dhcp分配的IP(下文简称dip),以及要修改为的静态IP(sip) 2.有一个脚本,通过其配置文件,可修改本机的主机名,ip等信息(已完成) 3.两组ip以数组的形式,写入脚本配置文件 4.未修改状态下,dip online,sip必须offline. 5.未修改状态下,如果sip online,记录日志并跳过 6.dip 和 sip的数量应该是相等的,但不强制 7.修改成功后,dip可能online

已知IP地址,如何查ISP

问题描述 主要是针对港澳台地区的ip和isp不知道哪儿有提供类似的查询望高人解答 解决方案 解决方案二: 解决方案三:http://ip.chinaz.com/解决方案四:看看先!解决方案五:学习下解决方案六:QQWay.dat也可以,你要编程实现那代码更多了.去联合开发网搜索下一大片解决方案七:引用1楼dengzikun的回复: http://www.ip138.com/ 我也用这个

向已知ip地址发送消息

问题描述 想向大家请教一个问题就是我的web程序需要一个用户登录,如果这个用户在其他地方登录,则将第一个登录的踢掉,这个功能已经实现了,但是需要向被踢掉的人发送一个信息,告诉他,他的用户已经在其它地方登录了,这个信息怎么发呢呃,如果大家会的话,或者有思路,请与我联系昂,这个问题纠结好长时间了...chenleileiwei@163.com

百度地图 js 通过IP定位城市后,已知一个坐标集合,根据每个坐标添加标注点,求大神help me

问题描述 百度地图 js 通过IP定位城市后,已知一个坐标集合,根据每个坐标添加标注点,求大神help me var myCity = new BMap.LocalCity(); // 以当前IP定位到城市 myCity.get(myFun); // 根据IP对当前城市进行定位 function myFun(result){ var center = result.center; // 城市坐标中心点 var point = new BMap.Point(center.lng,center.la

已知每个顶点的入度和出度,用最大流的方式求边

问题描述 已知每个顶点的入度和出度,用最大流的方式求边 比如已知出度是(2 1 1 1),入度是(1 2 1 1). 如下是解法图解: 根据英文解释和图解,它的做法是,先弄出起点X和终点Y,根据每个顶点的出度,得到X_A的容量是2,X_B.X_C.X_D的容量是1:然后从A.B.C.D引出边到其他顶点,因为顶点之间只可能有一条边,所以这些边的容量是1.假定最大流是边的个数,也就是出度或者入度的和,这里计算得到是5. 我的疑惑是:它怎么根据最大流得到中间那些红色边的呢?? 附英文:Let's ta

sql-MS_SQL 已知一组数据,请给出可返回所有可能的组合方式的函数

问题描述 MS_SQL 已知一组数据,请给出可返回所有可能的组合方式的函数 写一个SQL函数 从TB5中TB5Code 所维护的表中各取一个字符 组合成 XXXX 的形式, 组合的先后顺序 按照TB5中lat 的大小顺序 --测试数据 数据库版本为 MS SQL SEVER 2008 R2 create table TB1(ID INT IDENTITY (11)TB1Code VARCHAR(20)PRIMARY KEY(TB1Code)); insert into TB1(TB1Code)

同局域网内,已知一个设备的外网IP,如何获取其外网IP?

问题描述 在同一个局域网内,已知一个设备的外网IP,如何获取其内网IP?用C#代码该怎么实现?或者是,在Socket通讯中,怎么获取远端设备的内网IP? 解决方案 本帖最后由 GAMU_kaito 于 2014-02-13 10:46:12 编辑解决方案二:补充一下,这个时候那个设备是在线的,但是那天设备不是本地机器个人的思路是:1.首先获取到局域网内所有在线的设备的外网IP和内网IP2.根据已知的外网IP查找到对应的内网IP但是一来,个人不知道第一步该怎样用代码实现:二来,觉得这样的方法似乎很