Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save astrcomp/eca76a1b5f263ac0849bac2510fd4e1d to your computer and use it in GitHub Desktop.

Select an option

Save astrcomp/eca76a1b5f263ac0849bac2510fd4e1d to your computer and use it in GitHub Desktop.
#include "Header.h"
#include <stdio.h>
using namespace std;
DWORD WINAPI SexToClient(LPVOID client_socket);
char *ReadFileHTML(wchar_t str[],int &FileSize)
{
DWORD dwCounter;
HANDLE io = CreateFile(str, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
FileSize = GetFileSize(io, NULL);
printf("file size = %d \n", FileSize);
char *bodyhtml = new char[FileSize + 1];
ReadFile(io, bodyhtml, FileSize, &dwCounter, NULL);
bodyhtml[FileSize] = 0;
CloseHandle(io);
return bodyhtml;
}
int countMass(char str[])
{
int wordsize = 0;
while (str[wordsize] != NULL) ++wordsize;
return wordsize;
}
int nclients = 0;
int main()
{
char *index;
int size=0;
index = ReadFileHTML(L"index.html",size);
system("color 0a");
WSADATA wsaData;
WSAStartup(0x0202, &wsaData);
printf("%s \n",wsaData.szSystemStatus);
SOCKET servsocket;
servsocket = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in SocketAddr = {AF_INET,htons(80),INADDR_ANY, };
bind(servsocket, (LPSOCKADDR)&SocketAddr, sizeof(SocketAddr));
SOCKADDR_IN socketclientaddr;
int client_addr_size = sizeof(socketclientaddr);
listen(servsocket, 0x100);
SOCKET ClientSocket;
while ((ClientSocket = accept(servsocket, (LPSOCKADDR)&socketclientaddr, &client_addr_size)))
{
nclients++;
DWORD thID;
char buff[424];
char BUFF[4] = { 0 };
int bytes_recv = recv(ClientSocket, &buff[0], sizeof(buff), 0);
printf("buff = %d \n byterecv = %d", countMass(buff),bytes_recv);
buff[bytes_recv] = '\0';
printf("%s", buff);
send(ClientSocket, "HTTP/1.1 200 Ok\r\n", 17, 0);
send(ClientSocket, "Content-length: ", 16, 0);
_itoa_s(size, BUFF, 10);
send(ClientSocket, BUFF, countMass(BUFF), 0);
send(ClientSocket, "\r\nContent-type: text/html; charset=UTF-8\r\nConnection: keep-alive\r\n\r\n", sizeof("\r\nContent-type: text/html; charset=UTF-8\r\nConnection: keep-alive\r\n\r\n") - 1, 0);
send(ClientSocket, index, size, 0);
bytes_recv = recv(ClientSocket, &buff[0], sizeof(buff), 0);
printf("%s", buff);
bytes_recv = recv(ClientSocket, &buff[0], sizeof(buff), 0);
printf("%s", buff);
// CreateThread(NULL, NULL, SexToClient, &ClientSocket, NULL, &thID);
}
WSACleanup();
return 0;
}
DWORD WINAPI SexToClient(LPVOID client_socket)
{
printf("connect %d \n", nclients);
SOCKET my_sock;
my_sock = ((SOCKET *)client_socket)[0];
char buff[424];
char BUFF[4];
//scanf("%s", BUFF);
int bytes_recv = recv(my_sock, &buff[0], sizeof(buff), 0);
printf("%s", buff);
send(my_sock, "HTTP/1.1 200 Ok\r\n", 17, 0);
send(my_sock, "Content-length: ", 16, 0);
//_itoa(sizeof("<html xmlns=\"http://www.w3.org/1999/xhtml\"><title></title>\r\n<script language=\"javascript\" type=\"text / javascript\">var xmlHttp = new XMLHttpRequest object;\r\nfunction callServer() { var zipCode = document.getElementById(\"zipCode\").value;\r\n var url = \" / scripts / getZipCode.php ? city = \" + escape(zipCode); xmlHttp.open(\"GET\", url, true);\r\n xmlHttp.send(null);\r\n }\r\n</script>\r\n<body>TEST1<form><p>City: <input type=\"text\" name=\"city\" id=\"zipCode\" size=\"25\" onChange=\"callServer();\" /></p></form></body></html>")-1, BUFF, 10);
send(my_sock, BUFF, sizeof(BUFF) - 1, 0);
send(my_sock, "\r\nConnection: keep-alive\r\n\r\n", sizeof("\r\nConnection: keep-alive\r\n\r\n") - 1, 0);
send(my_sock, "<html xmlns=\"http://www.w3.org/1999/xhtml\"><title></title>\r\n<script language=\"javascript\" type=\"text / javascript\">var xmlHttp = new XMLHttpRequest object;\r\nfunction callServer() { var zipCode = document.getElementById(\"zipCode\").value;\r\n var url = \" / scripts / getZipCode.php ? city = \" + escape(zipCode); xmlHttp.open(\"GET\", url, true);\r\n xmlHttp.send(null);\r\n }\r\n</script>\r\n<body>TEST1<form><p>City: <input type=\"text\" name=\"city\" id=\"zipCode\" size=\"25\" onChange=\"callServer();\" /></p></form></body></html>", sizeof("<html xmlns=\"http://www.w3.org/1999/xhtml\"><title></title>\r\n<script language=\"javascript\" type=\"text / javascript\">var xmlHttp = new XMLHttpRequest object;\r\nfunction callServer() { var zipCode = document.getElementById(\"zipCode\").value;\r\n var url = \" / scripts / getZipCode.php ? city = \" + escape(zipCode); xmlHttp.open(\"GET\", url, true);\r\n xmlHttp.send(null);\r\n }\r\n</script>\r\n<body>TEST1<form><p>City: <input type=\"text\" name=\"city\" id=\"zipCode\" size=\"25\" onChange=\"callServer();\" /></p></form></body></html>") - 1, 0);
//xmlHttp.onreadystatechange = updatePage; \r\n
send(my_sock, "HTTP/1.1 200 Ok\r\n", 17, 0);
send(my_sock, "Content-length: ", 16, 0);
// _itoa(sizeof("<html>TEST2<script language=\"javascript\" type=\"text / javascript\">var xmlHttp = new XMLHttpRequest();< / script></html>"), BUFF, 10);
send(my_sock, BUFF, sizeof(BUFF) - 1, 0);
send(my_sock, "\r\n\r\n", sizeof("\r\n\r\n") - 1, 0);
send(my_sock, "<html>TEST2<script language=\"javascript\" type=\"text / javascript\">var xmlHttp = new XMLHttpRequest();< / script></html>", sizeof("<html>TEST2<script language=\"javascript\" type=\"text / javascript\">var xmlHttp = new XMLHttpRequest();< / script></html>") - 1, 0);
ZeroMemory(buff,424);
buff[423] = '/0';
bytes_recv = recv(my_sock, &buff[0], sizeof(buff), 0);
printf("%s", buff);
bytes_recv = recv(my_sock, &buff[0], sizeof(buff), 0);
printf("%s", buff);
bytes_recv = recv(my_sock, &buff[0], sizeof(buff), 0);
printf("%s", buff);
nclients--;
printf("-disconnect %d\n",nclients);
closesocket(my_sock);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment