@kiramys1

Не удаётся создать сокет. Что не так?

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

Есть вот такой вот код и сообственно говоря при запуске в консольку выдаётся вот такая штука:
60466dc3c522f747186548.png
А также при пошаговой прогонке кода, было обнаружено что сокет при создании равен -1 (s=-1)
Что сообственно говоря не так?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
WSAStartup забыли, классика
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы