Issues with Server.begin();

Hi,
my aim is to use an arduino uno to take an ip call and print it's value. I have the code to do this however i am unable to use the ethernet shield due to server.begin() not completing. here is the code i am having issues with:

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x10-71, 0x8E }; //physical mac address
byte ip[] = { 192, 168, 1, 245 }; // ip in lan
byte gateway[] = { 192, 168, 1, 254 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(50); //server port
String readString; 

//////////////////////

void setup(){
    Serial.begin(9600);
    Serial.println("Serial Up");
  //pinMode(5, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  Serial.print("down");
  delay(2000);
  server.begin();
  Serial.print("server done");
}

Serial monitor looks like this:

Serial up
down

any suggestions?

p.s. i am aware String is bad for uno memory, however i have not been able to find a replacement that has the same functionality.

Note that because the W5500 and SD card share the SPI bus, only one at a time can be active. If you are using both peripherals in your program, this should be taken care of by the corresponding libraries. If you're not using one of the peripherals in your program, however, you'll need to explicitly deselect it. To do this with the SD card, set pin 4 as an output and write a high to it. For the W5500, set digital pin 10 as a high output.

i am unable to use the ethernet shield due to server.begin() not completing.

What does this have to do with Serial.begin() that is in your thread title?

I made a mistake it’s server.begin().

However making pin 10 high doesn’t seem to be working.

The Act pin is flashing intermittently. Is this supposed to?

Stew:
I made a mistake it’s server.begin().

If you edit your Original Post you can correct the title. That way you might attract the attention of someone who knows the answer.

...R

however i have not been able to find a replacement that has the same functionality.

All of the functionality of the String class, except swiss-cheesing your memory is provided by the string functions from C. You can use them without dynamic memory allocation/deallocation, by using NULL terminated char arrays and your brain.

It's that last part that proves too big a hurdle for a lot of people.

Please could you refer me to ANY resource that is available that properly explains alternatives in a way i can understand. i am aware i need to use string.c_str() however my compiler suggest incorrect use for this. i am happy to learn, i simply need someone to explain this in terms i can understand. rather than simply "string functions from C" as this has shred no light on this either.

Returning to server.begin(), after trying the suggestions above, i have been unable to get it to work. could it be library error and if so how would i change the library for the ethernet board 2?

Stew:
I made a mistake it’s server.begin().

However making pin 10 high doesn’t seem to be working.

The Act pin is flashing intermittently. Is this supposed to?

you should set pin 4 HIGH, to deselect the SD