Ich versuche eine kleine Anwendung zu erstellen, die Daten vom Serial-/Com-Port liest und die Daten über den Port 15000
an mein Netzwerk sendet.Zugriff verweigert beim Senden von Daten mit UdpClient
Alles funktioniert unter Windows und Linux (mit Mono) in Ordnung, aber ich Socket Exception
auf macOS mit folgenden Meldung: Access denied
Ich habe versucht, meine Anwendung mit erhöhten Berechtigungen auszuführen:
sudo mono ./SerialMonitor.exe
Aber das funktioniert auch nicht.
Gibt es eine Möglichkeit, diese Ausnahme loszuwerden? Und warum funktioniert es ohne Probleme unter Windows und Linux?
Hier ist mein Code:
using System;
using System.IO.Ports;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace SerialMonitor
{
class MainClass
{
static SerialPort mSerial = new SerialPort();
static String[] mSerialPorts;
static UdpClient mNetwork;
static IPEndPoint mIP;
static String mData = "";
public static void Main(string[] args)
{
mNetwork = new UdpClient();
mIP = new IPEndPoint(IPAddress.Parse("192.168.1.255"), 15000);
mSerialPorts = SerialPort.GetPortNames();
Console.WriteLine("Select a serial port:");
if (mSerialPorts.Length == 0)
{
Console.WriteLine("No serial ports available!");
return;
}
for (int i = 0; i < mSerialPorts.Length; i++)
{
Console.WriteLine(i + 1 + ": " + mSerialPorts[i]);
}
Console.Write("Selection: ");
int selection = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Selected port: " + mSerialPorts[selection - 1]);
mSerial.PortName = mSerialPorts[selection - 1];
mSerial.BaudRate = 9600;
mSerial.NewLine = "\r\n";
mSerial.Open();
mSerial.DiscardInBuffer();
Console.WriteLine("\nData:");
while (true)
{
try
{
MainClass.mData = mSerial.ReadLine();
Console.WriteLine(MainClass.mData);
byte[] bytes = Encoding.ASCII.GetBytes(MainClass.mData);
mNetwork.Send(bytes, bytes.Length, mIP);
}
catch(SocketException ex)
{
Console.WriteLine("\nNETWORK ERROR: " + ex.Message);
Console.Read();
return;
}
catch (Exception ex)
{
Console.WriteLine("\nERROR: " + ex.Message);
Console.Read();
return;
}
}
}
}
}
ich Visual Studio Gemeinschaft 2017 für Mac bin mit
Version 7.1 (Build 1297)
Mono 5.2.0.215 (D15-3/da80840) (64-Bit)
Projektkonfiguration:
FRAMEWORK 4 .6.1
x86