Я пытаюсь написать TCP-сервер в .NETMF 4.3 для моего пакета FEZ Spider.WSAENETDOWN SocketException на FEZ Spider kit
public partial class Program
{
void ProgramStarted()
{
ethernetJ11D.NetworkInterface.Open();
ethernetJ11D.UseStaticIP("192.168.0.8", "255.255.255.0", "192.168.0.1");
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint endPoint = new IPEndPoint(IPAddress.Any, 7777);
serverSocket.Bind(endPoint);
serverSocket.Listen(10);
new Thread(() =>
{
while (true)
{
Debug.Print("Network up: " + ethernetJ11D.IsNetworkUp);//true
Debug.Print("Network connected: " + ethernetJ11D.IsNetworkConnected);//true
System.Net.Sockets.Socket clientSocket = serverSocket.Accept();//exception!
new Thread(new Request(clientSocket).Process);
}
}).Start();
}
Метод serverSocket.Accept бросает SocketException с кодом ошибки 10050. This страница говорит, что это WSAENETDOWN: сеть вниз. Однако свойства ethernetJ11D указывают на то, что соединение завершено, и я могу ping устройство без проблем. Что я делаю не так?
EDIT
Когда я попытался запустить следующий клиент, я получил такое же исключение на вызов Socket.connect.
ethernetJ11D.NetworkInterface.Open();
ethernetJ11D.UseStaticIP("192.168.0.8", "255.255.255.0", "192.168.0.1");
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse("192.168.0.5"), 7777);
socket.Connect(endpoint);
Debug.Print("connected");
byte[] msg = new byte[] { 7, 77, 222 };
socket.Send(msg);
EDIT 2
Я попытался вместо того, чтобы реализовать клиента UDP. Это тоже не работает.