Unity UDP 브로드캐스트 수신자 구현
public class Lighthouse : MonoBehaviour
{
private byte[] data;
private string Error_Message;
private Thread thread;
private EndPoint ep;
private bool IsStop = false;
private Socket socket;
public int udpPort = 9050;
public static Lighthouse instance;
private void Awake()
{
if (instance == null)
{
instance = this;
GetSeverIP();
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
private void GetSeverIP()
{
try
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
ep = new IPEndPoint(IPAddress.Any, udpPort);
socket.Bind(ep);
data = new byte[1024];
thread = new Thread(Receive);
thread.IsBackground = true;
thread.Start();
}
catch (Exception e)
{
Debug.LogError(" :" + e.Message);
}
}
private void Receive()
{
while (!IsStop)
{
if (socket.Available <= 0) continue;
int recv = socket.ReceiveFrom(data, ref ep);
string msg = Encoding.ASCII.GetString(data, 0, recv);
Debug.Log(" :"+msg);
}
}
public void OnApplicationQuit()
{
IsStop = true;
socket.Shutdown(SocketShutdown.Both);
socket.Close();
thread.Abort();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity 최적화1. 프레임마다 처리하는 것을 최대한 피한다. 예를 들면: 5프레임당 한 번 처리로 변경할 수 있습니다. 2. 정시 반복 처리는 InvokeRepeating 함수로 이루어집니다. 예를 들어 0.5초 동안 시작한 후 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.