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