正在通过多播向我发送xml源,但我不知道多播组地址。我可以改用localhost吗?也就是说,
Socket socket =
new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint ip = new IPEndPoint(IPAddress.Any,8888);
socket.Bind(ip);
socket.SetSocketOption
(SocketOptionLevel.IP,
SocketOptionName.AddMembership,
我希望将UDP组播包发送到环回地址,并在其他应用程序中接收相同的包。所有测试都是在fedora core 17 Linux上完成的。
其思想是通过RTSP/HTTP或任何其他网络协议接收视频流,并在环回地址上多播它,这样我就可以使用VLC播放使用多播地址的流。抛开其他码率和受控组播问题不谈,我尝试读取一个视频文件并在环回设备上组播。但当试图在vlc上玩同样的游戏时,它不起作用。我可以看到数据包在wireshark中传输,但src ip取自我的默认网络接口(即,接口,这是我的默认网关)
我已经尝试了下面的命令
sudo ifconfig lo multicast
sudo ip route ad
我使用的是一个MulticastSocket,当我试图加入一个组时,当我在"localhost“ip上运行这个组时,它就无法工作了。然而,我发现这篇文章指出范围应该在224.0.0.1到239.255.255.254之间。当我用这个IP制作了一个InetAddress,并加入了这个小组时,它起了作用。请解释一下为什么这是必要的。
示例:
InetAddress group = InetAddress.getByName("localhost");
int port = 8888;
MulticastSocket socket = new MulticastSocket(
我创建一个组&在方法Receive通过创建线程等待消息之前发送一个消息1行。这段代码工作得很好。我只想知道为什么我不应该在Send方法中添加这一行,以便在尝试向组发送一些东西之前将套接字加入到组中。
server.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, MulticastOption);
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
我正在尝试允许连接到我的UDP服务器的客户端将数据包发送到服务器,我有一个服务器正在运行以便可以将数据包发送到客户端,但是尝试通过客户端将数据包发送回服务器似乎会产生一些奇怪的错误。
如果我启动服务器,然后打开一个客户端,客户端将从服务器接收第一个数据包,然后客户端尝试将数据包发送到服务器,这是由服务器接收的,但随后客户端抛出此错误
Exception in thread "main" java.lang.NumberFormatException: For input string: "testing"
at sun.misc.FloatingDeci