This is a working example for the depreciated string based API mbed server socket function. Solid on LPC1768. I have included a 32k favicon file for web page stability. Multiple simultaneous connections are no issue here.

Dependencies:   NTPclient

Revision:
0:8e3c163d3dbb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jun 13 13:19:17 2020 +0000
@@ -0,0 +1,117 @@
+#include "mbed.h"
+#include "NetworkInterface.h"
+#include "NTPclient.h"
+#include "favicon_ico.h"
+
+// define static IP settings
+#define IP         "192.168.1.180"
+#define GATEWAY    "192.168.1.1"
+#define NETMASK    "255.255.255.0" 
+#define PORT       80
+
+NetworkInterface *net = NetworkInterface::get_default_instance();
+
+TCPServer           server;
+TCPSocket           client;
+SocketAddress       clientAddress;
+
+NTPclient         ntp(*net);
+
+DigitalOut led(LED1);
+time_t seconds;
+
+char requestType[16];
+char request[64];
+
+char    *sendbuffer = new char[512];    // create data send buffer space
+char    recevbuffer[1024];              // create http receive buffer space
+
+int main()
+{   
+    printf("\033[0m\033[2J\033[HTCP NTP client and server example\r\n\n\n"); // Tera Term clear screen
+    seconds = time(NULL);     
+    printf("Initial RTC time: %s\r\n", ctime(&seconds));    
+
+    // Include to set static IP    
+    net->set_network (IP, NETMASK, GATEWAY);
+     
+    printf("Connecting to network...\n\n");
+
+    nsapi_size_or_error_t r = net->connect();
+    if (r != 0) {
+        printf("Error! net.connect() returned: %d\n", r);
+        while(1);   // stop here and find the connection problem
+    }
+    
+    const char *ip = net->get_ip_address();
+  
+    if(ip){ 
+        printf("\nConnected\n\nGet NTP time...\n");
+        if(ntp.getNTP("0.pool.ntp.org",3600,1,1)){
+            seconds = time(NULL);
+            printf("RTC time set by NTP: %s\n\n", ctime(&seconds));
+            }
+            else{printf("No NTP could not set RTC !!\n\n");
+            }  
+    }else{
+        printf("No IP!!\n");
+        while(1);
+    }         
+ 
+    printf("Starting Server...\r\n\n");
+    
+    /* Open the server on ethernet stack */
+    server.open(net); 
+    /* Bind the HTTP port (TCP 80) to the server */
+    server.bind(ip, 80); 
+    /* Can handle 5 simultaneous connections */
+    server.listen(5);   
+    //listening for http GET request 
+    printf("Ready\r\n\n");
+    
+    printf("The Server IP address: '%s'\n", ip);
+    printf("Waiting for connection....\r\n\n"); 
+    
+    nsapi_size_or_error_t result; 
+        
+    while(1){
+                           
+        server.accept(&client, &clientAddress);
+        
+        led=1;          
+        result=client.recv(recevbuffer, 1024);
+        if (result < 0) {
+            printf("Error! socket.recv() returned: %d\n", result);           
+        }   
+              
+        sscanf(recevbuffer,"%s %s",requestType,request);
+        printf("\nClient IP: %s \n", clientAddress.get_ip_address());                        
+        //printf("Received Msg:\n%s\n\n", recevbuffer);     // include to view complete receive buffer       
+        printf("request: %s Type: %s\n", requestType,request); 
+       
+        if(strcmp(request,"/")==0){
+            //send current mcu rtc time to client
+            time_t seconds = time(NULL);
+            sprintf(sendbuffer,"HTTP/1.1 200 OK\n Content-type: text/plain\r\n\r\n <h1> Hello !!</h1>\r\n\n <h1>Time is: %s</h1>\r\n", ctime(&seconds));
+            printf("Sending Message\n");
+            result=client.send(sendbuffer, strlen(sendbuffer));  // send data in buffer to http port.
+            printf("Sent Message, %d bytes\n",result);
+        } 
+        else if(strcmp(request,"/favicon.ico")==0){
+            //send favicon if requested
+            printf("Sending Favicon\n"); 
+            result=client.send((char*)favicon_ico,sizeof(favicon_ico)); 
+            printf("Sent Favicon, %d bytes\n",result);                
+        }
+        else{
+            // send page not found reply
+            sprintf(sendbuffer,"HTTP/1.1 404 Not Found\nContent-type: text/plain\r\n\r\npage not found");
+            printf("Sending Not Found Message\n");
+            result=client.send(sendbuffer, strlen(sendbuffer));
+            printf("Sent Not Found Message, %d bytes\n",result);
+        }                    
+        //close socket       
+        client.close();            
+        led=0;
+    }
+}