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;
}