Skip to content

Instantly share code, notes, and snippets.

@AriaEbervine
Created February 26, 2026 07:23
Show Gist options
  • Select an option

  • Save AriaEbervine/d32ad5b1e1d93670e32a0f38b225ff67 to your computer and use it in GitHub Desktop.

Select an option

Save AriaEbervine/d32ad5b1e1d93670e32a0f38b225ff67 to your computer and use it in GitHub Desktop.
c++
#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
int main() {
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
cout << "WSAStartup failed\n";
return 1;
}
SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (clientSocket == INVALID_SOCKET) {
cout << "Socket creation failed\n";
WSACleanup();
return 1;
}
sockaddr_in serverAddr;
ZeroMemory(&serverAddr, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(54000);
inet_pton(AF_INET, "127.0.0.1", &serverAddr.sin_addr);
if (connect(clientSocket, (sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {
cout << "Connection failed. Error: " << WSAGetLastError() << endl;
closesocket(clientSocket);
WSACleanup();
return 1;
}
cout << "Connected to server\n";
int number;
while (true) {
cout << "Enter number: ";
cin >> number;
send(clientSocket, (char*)&number, sizeof(number), 0);
int response;
int bytes = recv(clientSocket, (char*)&response, sizeof(response), 0);
if (bytes <= 0) {
cout << "Server disconnected\n";
break;
}
cout << "Server response: " << response << endl;
}
closesocket(clientSocket);
WSACleanup();
return 0;
}
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main()
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
std::cout << "WSAStartup failed\n";
return 1;
}
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (serverSocket == INVALID_SOCKET)
{
std::cout << "Socket creation failed\n";
WSACleanup();
return 1;
}
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(54000);
serverAddr.sin_addr.s_addr = INADDR_ANY;
if (bind(serverSocket, (SOCKADDR*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR)
{
std::cout << "Bind failed. Error: " << WSAGetLastError() << "\n";
closesocket(serverSocket);
WSACleanup();
return 1;
}
if (listen(serverSocket, 1) == SOCKET_ERROR)
{
std::cout << "Listen failed\n";
closesocket(serverSocket);
WSACleanup();
return 1;
}
std::cout << "Server started on port 54000\n";
SOCKET clientSocket = accept(serverSocket, NULL, NULL);
if (clientSocket == INVALID_SOCKET)
{
std::cout << "Accept failed\n";
closesocket(serverSocket);
WSACleanup();
return 1;
}
std::cout << "Client connected\n";
int number;
while (true)
{
int bytesReceived = recv(clientSocket, (char*)&number, sizeof(number), 0);
if (bytesReceived <= 0)
break;
int response = number + 1;
send(clientSocket, (char*)&response, sizeof(response), 0);
}
closesocket(clientSocket);
closesocket(serverSocket);
WSACleanup();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment