Re: Корректен ли этот код?
От: MaximE Великобритания  
Дата: 19.05.05 16:56
Оценка:
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 Yegorushkin
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.