wrote:
> Люди, подскажите плз, правилен ли этот код?
>
> SOCKET sock;
> struct sockaddr_in sa;
>
> WSAStartup(MAKEWORD(2, 0), &wsadata);
>
> sock = socket(AF_INET, SOCK_STREAM, 0);
>
> memset(&sa, 0, sizeof(sa));
> sa.sin_family = AF_INET;
> sa.sin_addr.s_addr = inet_addr("127.0.0.1");
> sa.sin_port = htons(5555);
>
> connect(sock, (struct sockaddr *)&sa, sizeof(sa));
>
Код сам по себе, скорее всего корректен.
> Дело в том, что connect возвращает 10061.
Какая символическая константа соответствует этому коду ошибки?
У меня виндозы нет под рукой, но скорее всего это ECONNREFUSED. Чтобы connect завершился успешно, необходимо, чтобы указанные адрес и порт обслуживались сервером.
> То же самое происходит и когда я указываю адрес соседнего компа в сети
То же самое — нужно коннектиться к работающему серверу.
> Вообще, требуется установить соединение и обмениваться данными с преобразователем интеррфейсов RS232/Ethernet MOXA NPort Express DE-311. Написано что устройство поддерживает TCP.
> Означает ли это (что устройство поддерживает TCP), что для связи с ним мне нужно знать только его IP? Или нужно знать порт, который он использует?
Нужно знать и IP адрес и порт. IP адрес задает адрес конкретной машины (хоста), порт — конкретный адрес на этом хосте.
--
Maxim YegorushkinPosted via RSDN NNTP Server 1.9