2026-03-18 20:09:32 +03:00

48 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using TMPro;
using UnityEngine;
public class UDPServer : MonoBehaviour
{
public TextMeshProUGUI text;
private Socket socket;
private bool isServerStarted = false;
// Start is called before the first frame update
void Start()
{
StartServer();
StartCoroutine(Listen());
}
private void StartServer()
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
var localIP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5555);
socket.Bind(localIP);
isServerStarted = true;
Debug.Log("Server was started.");
}
private IEnumerator Listen()
{
while (isServerStarted)
{
EndPoint remoteIp = new IPEndPoint(IPAddress.Any, 0);
byte[] data = new byte[1024];
var result = socket.ReceiveFrom(data, SocketFlags.None, ref remoteIp);
var message = Encoding.UTF8.GetString(data, 0, result);
string[] args = message.Split('|');
string serverMessage = "Hello from server!";
byte[] serverData = Encoding.UTF8.GetBytes(serverMessage);
int bytes = socket.SendTo(serverData, remoteIp);
text.text = args[1];
yield return new WaitForEndOfFrame();
}
}
}