Подключение к розетке на NanoFramework
У меня возникла проблема, когда я не могу подключиться по Telnet к своему Nucleo-F746ZG, используя следующий код:
Я вижу, что DHCP назначает действительный IP-адрес, что означает, что плата может видеть сеть (и маршрутизатор), но когда я использую клиент Telnet для подключения. Код никогда не покидает слушателя. Тот же код отлично работает в Windows под.NET Framework.
private void ConnectionListenerThread()
{
byte [] buff = new byte[ 1024 ];
int received;
//
// Grab a collection of available network interfaces.
//
NetworkInterface[] nis = NetworkInterface.GetAllNetworkInterfaces();
//
// We need at least one interface to continue.
//
if ( nis.Length > 0 )
{
NetworkInterface ni = nis[0];
ni.EnableDhcp();
//
// Wait to be assigned an IP address.
//
while ( ni.IPv4Address == null || ni.IPv4Address.Length == 0 || ni.IPv4Address.Equals( "0.0.0.0" ) )
{
Thread.Sleep( 100 );
}
Debug.WriteLine( $"DHCP has given us the address {ni.IPv4Address},{ni.IPv4SubnetMask},{ni.IPv4GatewayAddress}" );
while ( true )
{
_clientSocket = null;
//
// We now have an IP address allocated so we can await
// incoming client connections.
//
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, ListeningPort);
Socket listener = new Socket( localEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp );
try
{
listener.Bind( localEndPoint );
listener.Listen( 100 );
Debug.WriteLine( $"Waiting for an incoming connection on port {ListeningPort}.." );
_clientSocket = listener.Accept();
Debug.WriteLine( "Connected to a client" );
while ( true )
{
received = _clientSocket.Receive( buff );
if ( received > 0 )
{
OnSerialDataReceived?.Invoke( this, new EventArguments.BytesReceivedEventArgs( buff, received ) );
}
}
}
catch ( Exception ex )
{
Debug.WriteLine( $"Got a network exception: {ex.Message}" );
}
}
}
}
ListeningPort обычно имеет значение 54321.
Вот системная информация, которая показывает установленную версию NanoFramework.
System Information
HAL build info: nanoCLR running @ ST_NUCLEO144_F746ZG
Target: ST_NUCLEO144_F746ZG
Platform: STM32F7
Firmware build Info:
Date: Jul 13 2020
Type: MinSizeRel build with ChibiOS v19.1.4.1
Version: 1.4.590.0
Compiler: GNU ARM GCC v9.3.1
Есть ли у кого-нибудь предложения по поводу того, что я делаю не так?
Энди
1 ответ
Похоже на ошибку... Пожалуйста, поднимите вопрос на нашем GitHub. Обязательно добавьте проект, в котором воспроизводится проблема.