我在同一个进程中使用了两个套接字,一个充当多播服务器,另一个充当多播客户端。我试图将服务器和客户端功能结合在一个套接字中。直到现在才能成功。是否有人尝试将单个套接字作为多播服务器和客户端来使用。可能吗?如果没有任何说明限制的参考将不胜感激。非常感谢。充当多播服务器和客户端的Linux套接字
1
A
回答
0
至少在窗口上是可能的。试试下面的例子(没有错误检查):
SOCKET the_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("192.168.1.117");
service.sin_port = htons(56565);
int ret = bind(the_socket, (SOCKADDR *) &service, sizeof (service));
unsigned int grpaddr = inet_addr("224.4.4.44");
unsigned int iaddr = inet_addr("192.168.1.117");
//You should have the equivalent function in your existing client
//to join the multicast group
ret = join_source_group(the_socket, grpaddr, service.sin_addr.s_addr, iaddr);
std::string data = "AA";
sockaddr_in group;
group.sin_family = AF_INET;
group.sin_addr.s_addr = inet_addr("224.4.4.44");
group.sin_port = htons(56565);
ret = sendto(the_socket, data.c_str(), data.length(), 0, (const sockaddr*)&group, sizeof(group));
char recvdata[3] = {0};
ret = recv(the_socket, recvdata, 3, 0);
leave_source_group(the_socket, grpaddr, service.sin_addr.s_addr, iaddr);
0
“服务器”和“客户”是不是这确实适合很舒服到非基于连接的插座条款。特别是对于多播。
所以“多播接收器”和“多播发送器”可能更合适。
你当然可以用同一个套接字一次做两个套接字。加入一个组来发送消息并不是强制性的,但是如果你这么做了,你可能会收到你自己的消息(在一些操作系统中,这是可选的,例如使用Linux的setsockopt IP_MULTICAST_LOOP实例)。
“服务器”和“客户端”实际上是在比多播更高层工作的概念。我希望你能解释你正在努力做得更好,也许在另一个问题上。
多播发送者或接收者是客户端还是服务器,完全取决于应用程序。
+0
谢谢你的更正。他们有道理。我的意思是在同一个套接字上的多播接收器和发送器功能。 – Rak
相关问题
- 1. PHP套接字服务器/客户端
- 2. 客户端服务器udp套接字
- 3. 套接字java客户端服务器
- 4. 客户端 - 服务器套接字
- 5. 服务器/客户端套接字
- 6. 客户端服务器套接字C#
- 7. Python服务器客户端套接字
- 8. Java套接字客户端/服务器
- 9. Linux的套接字客户端/服务器程序
- 10. 使用多个端口的套接字客户端/服务器
- 11. linux套接字:客户端之前服务器退出
- 12. 客户端服务器套接字编程c-linux
- 13. 连接多个客户端的异步套接字服务器
- 14. 让套接字服务器接受多个客户端
- 15. 多套接字客户端连接到服务器
- 16. 客户端通过套接字连接多台服务器
- 17. C套接字服务器,Java套接字客户端:阻塞!
- 18. Python套接字客户端到Java套接字服务器
- 19. 客户端 - 服务器Unix套接字和端口转发
- 20. java套接字服务器和套接字客户端之间的连接
- 21. 在java中有多个客户端的套接字服务器
- 22. C#套接字服务器没有更多的800客户端
- 23. 同时关闭服务器和客户端套接字连接
- 24. 客户端和服务器Android套接字连接
- 25. 无法连接Java套接字服务器和客户端
- 26. 客户端和服务器套接字连接
- 27. C#套接字TCP客户端/服务
- 28. 服务器/客户端套接字和ObjectOutputStream的
- 29. Java客户端和带有套接字的PHP服务器
- 30. c中的客户端和服务器套接字
谢谢,它的工作。 – Rak