This is me again :) There is such a function:
char* HtmlList(char html[]) { char headers[255]; char Content_Length[1024]; char result[1024]; sprintf(Content_Length, "Content-Length: %d\r\n", (char) strlen(html)); strcpy(headers, "HTTP/1.0 200 OK\r\n"); strcat(headers, "Content-Type: text/html\r\n"); strcat(headers, Content_Length); strcat(headers, "Connection: close\r\n\r\n"); strcat(headers, html); strcpy(result, headers); return result; } Well, I try to call her:
void Main_WebServer() { SOCKET Winsock; char Buf[255]; //char* buffer; char Content_Length[1024]; char headers[255]; struct sockaddr_in client; int clientsize = sizeof(client); int s; char html[] = "<b>TEST!</b>"; *Buf = (char) HtmlList(html); Winsock = Start_Server(5656); listen(Winsock, 5); while (1) { s = accept(Winsock, (struct sockaddr*)&client, &clientsize); if (s == INVALID_SOCKET) break; send(s, Buf, (int)strlen(Buf), 0); } closesocket(Winsock); // закрытие сокета WSACleanup(); } It compiles without errors, but does not work. Instead of <b>TEST!</b> some characters when connected via netcat .
But if you put everything in one function, it works.