如何在一个程序中实现客户端-服务器udp多播?
我已经将服务器和客户端编写为单独的应用程序。他们通过 UDP 多播进行通信(因为我需要加入该组的每个人都可以读取和写入消息)。现在我有两个窗口,但我的目标是创建一个简单的聊天程序,但我不知道如何同时收听和发送。我需要创建 2 个套接字吗?或者我可以只使用一个吗?我什至尝试将两个应用程序合并为一个,但我没有成功(我知道,我知道..但我有点绝望)。
我在谷歌上搜索了一个 tut,但没有成功。
我正在使用c++。
I have written a server and a client both as separate apps. They communicate through UDP Multicast (becouse I need that everyone who joins the group can read & write messages). Now I have two windows, but my aim is to create one simple chat program, but I don't know how to listen and send at the same time. Do I need to create 2 sockets? Or can I use just one? I've even tried to merge both apps in one, but I didn't succeeded (I know, I know.. but I was kinda desperate).
I've searched google for a tut, but didn't succeeded.
I'm using c++.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用一个或两个套接字,这完全取决于您是否希望绑定到特定的网络适配器以及是否希望使用单播和单播。广播数据包。管理一台用于发送,一台用于接收通常更容易。
要侦听同一主机上发送的多播数据包,请检查
IP_MULTICAST_LOOP
套接字选项,注意它在 Windows 和 Unix 上的应用方式不同。You can use one or two sockets, it all depends on whether you wish to bind to a particular network adapter and whether you wish to use unicast & broadcast packets. It is often easier to manage one for sending and one for receiving.
To listen to sent multicast packets on the same host check the
IP_MULTICAST_LOOP
socket option, noting it applies differently on Windows to Unix.