vs实现UDP多点通信问题

在vs2018下用C++开发exe程序,如何实现UDP接收多个IP及发送给多个IP。

接收和发送同时进行

0

5个回答

1,首先需要建立socket 连接,通过多线程来进行UDP的发送,及接收。
2,程序需要有高并发要求吗?我有代码。
3,如有问题欢迎讨论,1016493379@qq.com

2

socket编程的基础要有,baidu或者google,一搜一大堆;
既然使用udp了 如果在局域网环境下 简单的可以考虑使用udp组播技术来实现,但是组播实际用起来不一定特别稳定就是了;
如果不使用组播或者在广域网环境下,可以创建一个用户类或结构体,成员包括ip和端口等信息,使用数组或链表来来管理;
使用多线程维持多个udp链接,接收到某个链接来的数据的时候,再开启新的线程来发送给用户数组或链表里的多个用户。。。

0

UDP socket编程socket()/sendto/recvfrom()接收/上发送数据。

0

通过发送一段Udp指令,来获取连在同一个局域网的多台设备的ip,服务器端返回确认的数据。

0

发送和接受分别用一个线程来。之后将收到的消息或者发送的消息,存入队列里面。这个队列由另一个线程来控制。队列取得消息,并根据每个消息的特点,来进行响应。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
多点通信——通信协议
多点通信——通信协议
winsock2 中QOS和多点通信的问题
请问winsock2中QOS和多点通信的问题的。我这里有一点资料,但不详细。
广域网内多点通信
最近需要做一个[color=#FF0000]广域网[/color]内多点通信的软件,最开始想到的多播,但是现在很多的路由器是不支持多播的,难道广域网内的多播都是退化成单播通信的?广域网中有没有什么技术可以实现多播通信
基于tcp的WinSock多点通信
基于tcp的WinSock多点通信
100分问:socket多点通信问题
我在一个第一个程序里建立了两个server,第二个建了一个client,一个server,第三个建了两个client,rn实现三方通行(这种模式已经是固定的了,不能改),使用基类CAsyncSocket,有以下几个问题:rn1:server响应的OnAccept消息,然后调用accept的函数,需要指定类对象,如何知道是哪个socket的消息?2:我接收的消息如何知道是哪个程序发过来的?rn有源程序更好,大家帮忙指点一下.
请问winsock2中QOS和多点通信的问题
请问winsock2中QOS和多点通信的问题。我这里有一点资料,但不详细。
udp实现数据传输的问题
想用Java实现简单的UDP数据传输 但是服务器端老报错 Address already in use: Cannot bindrn下面是代码 帮忙看下 谢谢rn/******************客户端**********************************/rnpublic static void main(String[] args) throws java.io.IOExceptionrn rn rn String localhost ="192.168.108.200";rn rn BufferedInputStream inFromUser = rn new BufferedInputStream(new FileInputStream("c:\\test.txt"));rn rn DatagramSocket clientSocket = new DatagramSocket();rn InetAddress IPAddress = InetAddress.getByName(localhost);rn rn byte[] sendData = new byte[1024];rn byte[] receiveData = new byte[1024];rn //read data from inFromUser to sendDatarn while(inFromUser.read(sendData)!=-1)rn rn DatagramPacket sendPacket = rn new DatagramPacket(sendData, sendData.length, IPAddress, 8000);rn clientSocket.send(sendPacket);rnrn rn inFromUser.close();rn clientSocket.close();rn rnrnrnrn/***********************服务器端********************/rnrn public static void main(String[] args) throws Exception rn rn BufferedOutputStream bufferedOutputStream = rn new BufferedOutputStream(new FileOutputStream("d:\\test.txt"));rn DatagramSocket serverSocket = new DatagramSocket(8000);rn byte[] receiveData = new byte[1024];rn byte[] sendData =new byte[1024];rn rn DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);rn serverSocket.receive(receivePacket);rn rn while(true)//循环的条件不知道该怎么定就用true了rn rn bufferedOutputStream.write(receivePacket.getData());rn rn rn
完成端口下的UDP的实现问题
由于在TCP协议下,我们有WSAAccept可以做循环来侦听客户端的连接,但是在UDP协议下,我们不能使用WSAAccept这个函数来获取客户端的数据,因此我采用了WSARecvFrom来一直做循环,从而获取客户端的数据。我在使用这个函数的时候,由于SOCKET只有一个,因此一创建了服务端的SOCKET就将该SOCKET与完成端口绑定。这样做了以后,程序几乎不能运行,在WSARecvFrom循环执行以后,2500次以后,SOCKET底层就报错,错误码为10055,不知道是哪个资源没有释放,或者说,这种处理UDP下的完成端口的做法本身就不对,请各位大侠指正。
VS UDP传输文件例子
1、通过 UDP来传输文件。 2、完成基本框架,如果有需要自己完成 Ip地址读取,文件信息头和保证传输可靠等工作。 3、待传输的文件需要打开工程换成自己的文件。
IOCP VS UDP异步通信。 讨论
最近看了IOCP的使用。rnrn同时存在很多问题,主难以理解的就是 rnrnIOCP是TCP通信的一个异步处理。那么,UDP的异步 实现相对来说不是更加容易和自由么?rnrn谁能讲解一下 IOCP模式相比 UDP异步实现的优势呢?
串口RS422、RS485多点通信资料
关于串口485与串口422的资料,需要的朋友可以看看,做参考
UDP网络通讯/UDP可靠性实现
UDP网络通讯在前面一篇博客中写道TCP套接字的网络通讯TCP网络通讯;下面来介绍UDP套接字的网络通讯。一、UDP与TCP的区别: TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议 UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。可靠性由上层应用实现,所以要实现UDP的可靠性传输,必须通过应用层来实现和控制。 二、TCP如何实现可靠性传输 请求与应答 按序到达 丢包
【LwIP - UDP】- 实现UDP通信
目录   基于LwIP实现UDP通信 1 什么是UDP 2 基于raw/callback API的UDP 3 raw/callback API UDP的绑定、连接和发送 基于LwIP实现UDP通信 1 什么是UDP UDP,即用户数据包协议,属于TCP/IP 中的传输层。同样,TCP,即传输控制协议,也是属于TCP/IP传输层。这两者区别在此处不加以解释,本文主要讲解如何通过LwI...
JAVA实现UDP打洞问题
最近在弄一个聊天软件,是基于C/S端的,其中聊天部分想采用UDP实现,主要在我们学校内部使用,我们学校是个局域网,但是学校的各个园区之间使用了不同的网段,好像这样如果使用UDP的话就不能正常通信,要使用打洞技术了。上网查资料说是首先要把客户级的IP和端口经过转换之后保存在服务器端,然后不同网段的客户端需要通讯从服务器端取到对方经过转换之后的IP和端口,有点搞不清楚那个过程,那个IP地址和端口的转换到底是怎么个弄法?能不能直接登陆到服务器的时候就传送自己的IP和端口保存到数据库,如果是那样的话,也就没有什么转换啊,感觉和UDP直接取到IP和端口没什么两样了。如果要转换的话,用JAVA能够怎样转换哦,还网高手赐教!
MTK实现UDP连接问题
我这样来实现UDP的连接,rn kal_uint8 val=KAL_TRUE; rn kal_int8 soc_ret; rn //kal_int8 soc_id; rn kal_uint8 UDP_send_buf[] = "Hello!";rn rn EntryNewScreen(333, 0, 0, NULL); rn clear_screen(); rn //soc_id = soc_create(2, SOC_SOCK_DGRAM, 0, MOD_MMI, 14); //AF_INET==2,这样create失败soc_id < 0rn [color=#FF0000]soc_id = soc_create(SOC_PF_INET, SOC_SOCK_DGRAM, 0, MOD_MMI, 14); [/color] rn if( soc_id < 0) rn rn gui_move_text_cursor(0, 0); rn gui_set_text_color(UI_COLOR_RED); rn gui_print_text( L"Create fail!"); rn gui_BLT_double_buffer( 0, 0, UI_device_width -1, UI_device_height -1); rn return ; rn rnrn if(soc_setsockopt(soc_id, SOC_NBIO, &val, sizeof(val)) < 0) rn rn return ; rn rn val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT | SOC_ACCEPT ; rn if(soc_setsockopt(soc_id, SOC_ASYNC, &val, sizeof(val)) < 0) rn rn return ; rn rnrn memset( &my_ip_addr, 0, sizeof(sockaddr_struct)); rnrn my_ip_addr.addr[0] = 123; rn my_ip_addr.addr[1] = 65; rn my_ip_addr.addr[2] = 212; rn my_ip_addr.addr[3] = 142;rn my_ip_addr.addr_len = 4;rn my_ip_addr.port = 6001; rn my_ip_addr.sock_type = SOC_SOCK_DGRAM;rn [color=#FF0000]soc_ret = soc_bind(soc_id,&my_ip_addr);//来到这里绑定失败[/color]rn if(soc_ret != SOC_SUCCESS)rn rn gui_move_text_cursor(0, 30); rn gui_set_text_color(UI_COLOR_RED); rn gui_print_text( L"bind error!"); rn gui_BLT_double_buffer( 0, 0, UI_device_width -1, UI_device_height -1); rn soc_close(soc_id);rn rn elsern rn rn soc_ret = soc_sendto(soc_id,UDP_send_buf,(kal_uint32)strlen((const char *)UDP_send_buf),0,&my_ip_addr);rn if(soc_ret > 0)rn rn rn my_socket_receive();rn rn rn rnrnrn我想用UDP连接去发送数据和接收数据,但是总是绑定失败,我这样写有什么问题吗?不惜赐教。。。。
利用UDP matlab与VS实时通信传输数据
利用UDP,在matlab与C#间实时通信的介绍。
vs—socket—udp详细通信过程
发布文章 博文管理我的博客退出 Trash Temp # Socket基本概念 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;...
网络游戏程序员须知 UDP vs TCP
这篇教程让我们就从最基本的网络数据收发开始谈起吧。其实这部分才是网络程序员应该做的最基础最简单的部分,但是这部分如果想要做好相对来说还是很有技巧和困难的。而且如果这部分你没做好,在多人对战类游戏中它带来的影响是极其恶劣的。 你可能听说过端口这个概念,也可能知道TCP和UDP这两个概念。在做网络开发的的时候,我们首先要做的就是选择合适的协议。到底是TCP,还是UDP,或者是两者混合来用呢?这是一个问...
VS在windows进行网络开发UDP(一)
下面代码可以直接运行(需要在属性中更改C++的SDL检查,关掉就好了) 其实是非常简单的。 代码如下: #include &amp;lt;iostream&amp;gt; #include &amp;lt;winsock2.h&amp;gt; using namespace std; #pragma comment(lib, &quot;WS2_32.lib&quot;) int main() { WSADATA data; // 定...
mpi学习日志(5):mpi4py与多点通信续
在多点通信里我们已经学习了广播bcast,散播scatter,收集gather,规约reduce. 今天我们再来简略看一些可能更为少用的多点通信. 1.allgather 简单来说就是收集+广播. gather中只有根进程会得到收集到的信息,而allgather则是所有进程都会得到收集到的信息,就相当于收集后再广播一次. 2.allredu
tcp iocp及udp iocp server实现(udp server还有问题)
此代码http://download.csdn.net/source/1101107 的新版本,修改了一些不过,但udp server还存在问题,发布此代码的目的就是做技术交流,还希望大虾能知道一下小弟。
演示实现UDP打洞,UDP打洞原理
本程序为UDP打洞原理的测试程序。为了简单起见,该程序服务器就接收两个客户端的连接,使两客户端建立UDP通道。两客户端建立UDP通道后,互相发送的数据不经过服务器转发,直接进行数据交互,这时可以关闭服务器程序。服务器的默认服务端口是10000,如果该端口已经被占用,请自行修改服务端口。
网络协议 -- UDP协议(5)UDP的IOCP实现
关于IOCP网络模型的介绍可以参考:http://blog.csdn.net/china_jeffery/article/details/78815373 IOCP模型对协议是没限制的,无论是TCP还是UDP都是支持的。 UDP的IOCP模型实现的不同之处在于投递发送请求和接受请求所用的函数不同: int WSARecvFrom( SOCKET s, LPWSABUF lpBuffe
网络通信udp udp聊天器的python语法实现
IP Linux 常用命令 查看网卡:ifconfig 关闭网卡:sudo ifconfig ens33 down 关闭网卡:sudo ifconfig ens33 up 重置IP地址:sudo dhclient 注:ens33 根据Ubuntu版本不同而不同,ifconfig查看 (桥接:同一个局域网时使用) Windows 查看IP 1.cmd 2.网络适配器 3.shift+右键-&gt;p...
C++实现 UDP实现聊天室
C++实现,完全可用,下载即可运行。用SOCKET实现,有客户端和服务器端
udp问题
udp互发消息,用什么控件最好!不用控件有源程序最好了rn最好还有消息确认的。
UDP的问题
如果对方有防火墙,用UDP直接向对方发送数据时候,会导致自己的udp socket被关闭,怎样避免此类的问题呢?rn如何用UDP检测对方时候有防火墙呢?rn谢谢!
UDP问题
我写了一个UDP的通讯例子可知服务器端总是无法接收到信息.请各位帮忙看一下rn服务器端监听按钮(其中IP地址为192.168.0.32,端口为8877)rnprivate void button1_Click(object sender, System.EventArgs e)rnrn thread1=new Thread(new ThreadStart(Listen));rn thread1.Start();rnrn//监听UDP端口rnprivate void Listen()rnrn host=new IPEndPoint(ip,port);rn UdpClient udplisten=new UdpClient(host);rn while(!control)rn rn byte[] Receive=udplisten.Receive(ref host);rn string ss=System.Text.Encoding.BigEndianUnicode.GetString(Receive,0,Receive.Length);rn this.richTextBox1.AppendText(ss);rn rnrnrn客户端发送按钮(host服务器)rnprivate void button2_Click(object sender, System.EventArgs e)rnrn thread2=new Thread(new ThreadStart(Send));rn thread2.Start();rnrn//发送UDP数据包rnprivate void Send()rnrn UdpClient udpsend=new UdpClient(host);rn byte[] Sends=System.Text.Encoding.BigEndianUnicode.GetBytes("Hello world");rn udpsend.Send(Sends,Sends.Length);rn
udp问题?
在局域网中使用udp与公网地址发送数据时老提示地址池不允许是什么回事?就是发送了数据。但使用QQ时没影响,就是能说说具体怎样实现用udp向公网发数据!rnrn对了,还有遇上服务器地址重置错误是什么原因,怎么样解决?希望能够帮忙哦!
udp的问题
请问大家,我现在用udp进行通讯,是用CSocket写的。有两个结构体需要发送,结构体1五秒发送一次,结构体2一秒发送一次,接收的时候怎样才能区分接收的是结构体1还是结构体2呢?rn
UDP问题!
以下代码出现地址正在使用的错误!!!!rn请帮帮忙!rnPrivate Sub Command1_Click()rnMe.Winsock1.ClosernMe.Winsock1.Protocol = sckUDPProtocolrnMe.Winsock1.LocalPort = "6000"rnMe.Winsock1.RemotePort = "6000"rnMe.Winsock1.RemoteHost = "172.16.0.1"rnMe.Winsock1.SendData Me.Text1.TextrnEnd Subrn
C实现UDP端口扫描
UDP 是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。 在大多数情况下,当向一个未开放的UDP 端口发送数据时,其主机就会返回一个ICMP不可到达(ICMP PORT UNREACHABLE)的错误,因此大多数UDP 端口扫描的方法就是向各个被扫描的UDP 端口发送零字节的UDP 数据包,如果收到一个ICMP 不可到达的回应,那么则认为这个端口是关闭的,对于没有回应的端口则认为是开放的。 可是由于大部分系统都限制了ICMP 差错报文的产生速度,所以针对特定主机的UDP 大量端口扫描速度缓慢,此外由于UDP 协议和ICMP 协议都是不可靠协议,所以未收到回应可能由于数据包未送达造成,所以扫描程序需要针对同一端口多次尝试后才能确定其状态。
C#实现UDP打洞
C#开发的同学,值得一看,你会有所收货的
实现UDP可靠文件传输
在网上搜到的C#实现的UDP文件传输代码,分享给大家。局域网下速度能达到5,6M,效率还可以
C# UDP通信的实现
C#通信的实现.
VC++ 实现UDP
用过的,相当不错,实现通信..
java udp 实现简单实例
java udp 简单实例 实现
UDP实现可靠的文件传输
自己写的额外代码来保障UDP可靠的文件传输 解决UDP传输丢包问题。
udp lite 实现源代码
udp lite 是对udp协议的一个扩展,udp首部有一个校验字段,校验接收数据的正确性。有时,个别的错误并不重要,比如视频流量,udp-lite就是修改udp校验和字段为0,接收方不检查,来加快数据的传输...
51单片机实现UDP
使用ENC28J60作为网络芯片,51作为CPU实现了局域网的UDP通信