Для подключения к серверу требуется TCP-соединение через 13 порт, но при вызове connect через этот порт вылазит ошибка WSAEWOULDBLOCK! Код (Text): invoke socket, AF_INET,SOCK_STREAM, IPPROTO_TCP mov hSocket, eax invoke htons, 13 mov sin.sin_port, ax mov sin.sin_family, AF_INET mov sin.sin_addr, INADDR_ANY invoke bind, hSocket, offset sin, sizeof sin invoke WSAAsyncSelect, hSocket, hWnd, WM_SOCKET, FD_READ+FD_WRITE ... invoke GetDlgItemText, hWnd, IDE_ADDR, offset buf, sizeof buf mov al, byte ptr [buf] cmp al, 39h jg host_name cmp al, 30h jge ip_addr invoke SetDlgItemText, hWnd, IDS_STATUS, offset addr_null jmp return host_name: invoke gethostbyname, offset buf mov eax, dword ptr [eax+12] mov eax, [eax] mov eax, [eax] jmp _connect ip_addr: invoke inet_addr, offset buf _connect: invoke SetDlgItemText, hWnd, IDS_STATUS, 0 mov sin.sin_addr, eax invoke connect, hSocket, offset sin, sizeof sin Вопрос: что, собственно, не так? о_0
Может блокируемый сокет "говорит", что он будет заблочен и стоит с ним поговорить позже? Иль, может быть, стоит сначала книг покурить? Или, в гугл вас прогнать? Что, собственно, не так? о_0
читайте хелп вызов WSAAsyncSelect переводит сокет в неблокирующий режим. В этом режиме "ошибка" WSAEWOULDBLOCK - нормальный ход событий, говорит лишь о том, что операция не могла быть выполнена синхронно и уведомление об окончании вы получите позже ( в вашем случае, через оконное сообщение )