Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- short setupServer(int port)
- {
- SOCKET server_socket, client_socket;
- WSADATA wsa;
- struct sockaddr_in server_addr, client_addr;
- int c;
- char client_message[2000];
- int recv_size;
- printf("\nInitialising Winsock...");
- if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
- {
- printf("Failed. Error Code : %d", WSAGetLastError());
- return 1;
- }
- printf("Initialised.\n");
- //Create a socket
- if ((server_socket = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
- {
- printf("Could not create socket : %d", WSAGetLastError());
- }
- printf("Server Socket created.\n");
- memset(&server_addr, 0, sizeof(server_addr));
- //Prepare the sockaddr_in structure
- server_addr.sin_family = AF_INET;
- server_addr.sin_addr.s_addr = INADDR_ANY;
- server_addr.sin_port = htons(port);
- //Bind
- if (bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == SOCKET_ERROR)
- {
- printf("Bind failed with error code : %d", WSAGetLastError());
- }
- printf("Bind to port %d done.\n", port);
- //Listen to incoming connections
- listen(server_socket, 3);
- //Accept and incoming connection
- puts("Waiting for incoming connection...");
- c = sizeof(struct sockaddr_in);
- while ((client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &c)) != INVALID_SOCKET)
- {
- puts("Connection accepted");
- if ((recv_size = recv(client_socket, client_message, 2000, 0)) == SOCKET_ERROR)
- {
- puts("recv failed");
- break;
- }
- client_message[recv_size] = '\0';
- strcpy_s(path, MAX_PATH_LEN, client_message);
- break;
- }
- if (client_socket == INVALID_SOCKET)
- {
- printf("accept failed with error code : %d", WSAGetLastError());
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement