Избегание ошибок при соединении сокета на единице - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь получить сокетную связь с C # на Unity.

Следующий файл unityRecieve.cs приведет к ошибке, если Send.py прерван.

Send. py

import socket
import random

    HOST = '127.0.0.1'
    PORT = 50007

    client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    while True:
  a = random.randrange(3)
  result = str(a)
  print(a)
  client.sendto(result.encode('utf-8'),(HOST,PORT))
  time.sleep(2.0)

unityRecieve.cs

using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class unityRecieve : MonoBehaviour
{

    static UdpClient udp;

    void Start()
    {
        int LOCA_LPORT = 50007;

        udp = new UdpClient(LOCA_LPORT);
        udp.Client.ReceiveTimeout = 100;
    }

    void Update()
    {
        IPEndPoint remoteEP = null;
        byte[] data = udp.Receive(ref remoteEP);
        string text = Encoding.UTF8.GetString(data);
        Debug.Log(text);
    }
}

https://jump1268.hatenablog.com/entry/2018/11/25/143459

Как заставить unitiRecieve.cs продолжать работать безвыдает сообщение об ошибке, когда Send.py прерывается?

1 Ответ

0 голосов
/ 21 октября 2019

Не уверен, рассматривали ли вы обработку исключений. Если вы этого не сделали, это может указать вам правильное направление.

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...