Created
February 17, 2018 05:35
-
-
Save tjhv/0d18e7d7baf2350489c4f75c27cbcbf1 to your computer and use it in GitHub Desktop.
Old snippet from the beginning.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <winsock.h> | |
#define PORT 7096 | |
#pragma comment(lib, "wsock32.lib") | |
int main(void) | |
{ | |
std::cout << "Start of program." << std::endl; | |
WORD wVersion = MAKEWORD(1, 1); | |
WSADATA wsaData; | |
int eid; | |
eid = WSAStartup(wVersion, &wsaData); | |
if (eid != 0) | |
{ | |
std::cout << "WSAStartup failed: " << WSAGetLastError() << std::endl; | |
std::cin.get(); | |
return 1; | |
} | |
SOCKET server; | |
if ((server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) | |
{ | |
std::cout << "Error creating file descriptor: " << WSAGetLastError() << std::endl; | |
WSACleanup(); | |
std::cin.get(); | |
return 1; | |
} | |
struct sockaddr_in s; | |
memset(&s, 0, sizeof s); | |
s.sin_family = AF_INET; | |
s.sin_port = htons(PORT); | |
s.sin_addr.s_addr = htonl(INADDR_ANY); | |
if (bind(server, (struct sockaddr *) &s, sizeof s) == SOCKET_ERROR) | |
{ | |
std::cout << "Error binding to local port: " << WSAGetLastError() << std::endl; | |
WSACleanup(); | |
std::cin.get(); | |
return 1; | |
} | |
if (listen(server, SOMAXCONN) < 0) | |
{ | |
std::cout << "Error listening on local port: " << WSAGetLastError() << std::endl; | |
WSACleanup(); | |
std::cin.get(); | |
return 1; | |
} | |
std::cout << "Listening on local port: " << PORT << std::endl; | |
SOCKET client; | |
struct sockaddr_in c; | |
int len; | |
len = sizeof c; | |
if ((client = accept(server, (struct sockaddr *) &c, &len)) < 0) | |
{ | |
std::cout << "Error accepting client: " << WSAGetLastError() << std::endl; | |
WSACleanup(); | |
std::cin.get(); | |
return 1; | |
} | |
struct sockaddr_in a; | |
len = sizeof a; | |
eid = getpeername(client, (struct sockaddr *) &a, &len); | |
if (eid < 0) | |
{ | |
std::cout << "Error retrieving client numeric: " << WSAGetLastError() << std::endl; | |
WSACleanup(); | |
std::cin.get(); | |
return 1; | |
} | |
std::cout << "Connection received from: " << inet_ntoa(c.sin_addr) << std::endl; | |
closesocket(client); | |
std::cout << "End of program." << std::endl; | |
WSACleanup(); | |
std::cin.get(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment