![]() |
Открытие сокета.
Пытаюсь открыть на прослушивание порт 8080 на адресе 127.0.0.1. Использую следующий код:
Код:
WSADATA wsaData;И второй вопрос. В коде "sleep(300)" закомментирован т.к. при сборке вылазеет ошибка: "'sleep': identifier not found" - как с этим бороться? В инете нашёл 2 варианта - подключить dos.h или time.h. Ни один из них не помог. Использую VS2008 Express. Заранее благодарен. |
На счёт sleep - пробуй с подключённым windows.h
|
Компилятор чувствителен к регистру в MSDN описание функции Sleep такое VOID WINAPI Sleep(__in DWORD dwMilliseconds); так что пробуй Sleep. Насчет сокетов проверяй можегт какие ошибки функции возвращают, лгече будет причину найти
|
listen не там поставил )
и в номере порта забыл прогнать через htons вот код работающий: Код:
|
slesh, спасибо, всё работает. Maxidrom, действительно из-за регистра не работало =).
Образовалась ещё одна проблема. Читаю данные вот так: Код:
while((outSocket=accept(inSocket, (struct sockaddr *) &caddr, (int*)sizeof(caddr)))) {Код:
char *buf = new char[1024]; |
Ты используешь блокирующий режим, в нём функции recv, send, accept и connect блокируют программу до тех пор, пока не появятся данные в буфере или не подключится клиент. Чтобы избавиться от этого accept`и клиентов в отдельном потоке и каждого клиента определяй в отдельный поток.
|
| Время: 05:02 |