Unity Android程序,想实现一个局域网会议程序。
一个程序创建好房间后,需要让其他客户端知道,就需要不断往局域网发消息
开始想使用广播,后来改成组播。这里说一下这两种方式吧
一、广播
广播会往局域网所有客户端发送一次消息。
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
_socket.Bind(new IPEndPoint(GetIpAddress(), port));
private IPAddress GetIpAddress()
{
string hostName = Dns.GetHostName();
IPAddress[] _ipAddress = Dns.GetHostEntry(hostName).AddressList;
foreach (IPAddress _IPAddress in _ipAddress)
{
if (_IPAddress.AddressFamily.ToString() == "InterNetwork")
{
ip = _IPAddress.ToString();
return _IPAddress;
}
}
Debug.LogError("没找到IP");
return null;
}
Socket需要设置广播权限