And here is code, a lightly modified version of your demo app for the W5500 driver:
using GHIElectronics.TinyCLR.Devices.Gpio;
using GHIElectronics.TinyCLR.Devices.Spi;
using GHIElectronics.TinyCLR.Drivers.BasicNet.Sockets;
using GHIElectronics.TinyCLR.Drivers.BasicNet;
using GHIElectronics.TinyCLR.Drivers.WIZnet.W5500;
using GHIElectronics.TinyCLR.Pins;
using System;
using System.Collections;
using System.Diagnostics;
using System.Text;
using System.Threading;
namespace TinyCLRApplication2
{
internal class Program
{
static void Main()
{
GpioPin cs = GpioController.GetDefault().OpenPin(SC20100.GpioPin.PB1); // Arduino D10 - Correct for Arduino SPI CS
GpioPin reset = null; // GpioController.GetDefault().OpenPin(SC20100.GpioPin.PC4); // Arduino D7
GpioPin interrupt = null; // GpioController.GetDefault().OpenPin(SC20100.GpioPin.PA15); // Need to find a pin for this. Standard ethernet shields don't support IRQ
SpiController spiController = SpiController.FromName(SC20100.SpiBus.Spi6); // Arduino D11, D12, D13
W5500Controller networkController = new W5500Controller(spiController, cs, reset, interrupt);
bool isReady = false;
networkController.NetworkAddressChanged += (a, b) =>
{
isReady = networkController.Address.GetAddressBytes()[0] != 0 && networkController.Address.GetAddressBytes()[1] != 0;
};
NetworkInterfaceSettings networkSettings = new NetworkInterfaceSettings()
{
Address = new IPAddress(new byte[] { 192, 168, 0, 200 }),
SubnetMask = new IPAddress(new byte[] { 255, 255, 255, 0 }),
GatewayAddress = new IPAddress(new byte[] { 192, 168, 0, 1 }),
DnsAddresses = new IPAddress[] { new IPAddress(new byte[] { 75, 75, 75, 75 }), new IPAddress(new byte[] { 75, 75, 75, 76 }) },
MacAddress = new byte[] { 0x02, 0x01, 0x02, 0x03, 0x04, 0x05 },
//DhcpEnable = true,
//DynamicDnsEnable = true,
Hostname = "KenoInterface"
};
networkController.SetInterfaceSettings(networkSettings);
try {
networkController.Enable();
} catch (Exception ex) {
Debug.WriteLine($"Exception : {ex.Message}\r\n");
}
while (isReady == false) ; // wait for valid IP address.
var dns = new Dns(networkController);
var host = dns.GetHostEntry("www.example.com");
var ep = new IPEndPoint(host.AddressList[0], 80);
// Streaming socket
var socket = new Socket(networkController, AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(ep);
var content = "GET / HTTP/1.1\r\nHost: www.example.com\r\nConnection: close\r\n\r\n";
socket.Send(Encoding.UTF8.GetBytes(content));
var received = socket.Receive(SocketFlags.None);
if (received.Length > 0)
{
var recvdContent = new string(Encoding.UTF8.GetChars(received));
Debug.WriteLine("Received : \r\n" + recvdContent);
}
}
}
}