All pastes #291514 Raw Edit

darren

public text v1 · immutable
#291514 ·published 2006-12-25 08:57 UTC
rendered paste body
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <winsock2.h>
#include <cstring>
using namespace std;

int main()
{
    int size, retval;
    char buffer[1000];
	strcpy(buffer,"");
    int port = 77;
    hostent* remoteHost;
    char *host_name;
    int bytesRecv = 0;
    SOCKET server;
    SOCKADDR_IN addr;
    WSAData dat;
    WORD version;
    version = MAKEWORD(2,0);
    int WSAStartup_ = WSAStartup(version, &dat);
    
    for(;;) {


   
	cout << "Enter host IP (leave blank for loopback): ";
	host_name = new(char);
	cin.getline(host_name, 16);
	if(!strcmp(host_name, "")) 
    {
    host_name = "127.0.0.1";
    }
	
	server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET);
	addr.sin_addr.s_addr = inet_addr(host_name);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(port);
    size = sizeof(addr);
   

                         
    cout << "Talking with Server: " << (char)server << " @ " << host_name << "\n";
    
				 while(bytesRecv != SOCKET_ERROR)
                    {
                    recv(server, buffer, sizeof(buffer), 0);
                    if(!strcmp(buffer, "QUIT"))
                     {
                                       cout << "Connection terminated by server.\n\n";
                                       send(server, "QUIT", 5, 0);
                                       closesocket(server);
                                       WSACleanup();
                                       system("cls");
                                       break;
                     }

                    if(strcmp(buffer, "QUIT")) {
						if (buffer!="") { cout <<  buffer;}  
                    send(server, "OK", 3, 0);
                    }
                    }
                    }

    cout << "Connection closed.";
    cin.get();
    closesocket(server);
	return 0;
}