#include <sys/types.h>
#include <winsock.h>
#include <stdio.h>
#include <iostream>
#include <locale>
#include <windows.h>
#pragma comment (lib,"Ws2_32.lib")
using namespace std;
int main(void)
{
setlocale(LC_ALL, "Russian");
struct sockaddr_in local;
int s;
int s1;
int rc;
char buf[1];
local.sin_family = AF_INET;
local.sin_port = htons(7500);
local.sin_addr.s_addr = htonl(INADDR_ANY);
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0)
{
perror("ошибка вызова socket");
exit(1);
}
rc = bind(s, (struct sockaddr*) & local, sizeof(local));
if (rc < 0)
{
perror("ошибка вызова bind");
exit(1);
}
rc = listen(s, 5);
if (rc)
{
perror("ошибка вызова listen");
exit(1);
}
s1 = accept(s, NULL, NULL);
if (s1 < 0)
{
perror("ошибка вызова accept");
exit(1);
}
rc = recv(s1, buf, 1, 0);
if (rc <= 0)
{
perror("ошибка вызова recv");
exit(1);
}
printf("%c\n", buf[0]);
rc = send(s1, "2", 1, 0);
if (rc <= 0)
perror("ошибка вызова send");
exit(0);
}
Есть вот такой вот код и сообственно говоря при запуске в консольку выдаётся вот такая штука:
А также при пошаговой прогонке кода, было обнаружено что сокет при создании равен -1 (s=-1)
Что сообственно говоря не так?