Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2010, 19:18   #11
al072
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Что это за подключение такое?
Код:
#pragma comment (linker,"WSock32.Lib",lib)
никаких linker тут не нужно
Вот правильно
Код:
#pragma comment (lib,"WSock32")
Изменение этой строчки кода тоже не привело к удачной компиляции! По прежнему остаются 5 ошибок:
1) error C2664: 'accept' : cannot convert parameter 3 from 'unsigned int *' to 'int *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
2) error C3861: 'read': identifier not found
3) error C3861: 'write': identifier not found
4) error C3861: 'close': identifier not found
5) error C3861: 'close': identifier not found

По поводу первой ошибки я понял, что компилятор требует сделать привидение к типу int 3-го параметра функции(если я правильно понял, то имееться ввиду параметр "&remaddrs" ). Каким образом осуществить приведение вот в этой строчке кода:
Код:
csock = accept(msock, (struct sockaddr*) &remaddr, &remaddrs);
al072 вне форума Ответить с цитированием
Старый 13.02.2010, 20:06   #12
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Вместо close используйте closesocket()
Вместо read используйте recv - параметры смотрите в доках.
Вместо write используйте send - параметры аналогично в документации.
MaTBeu вне форума Ответить с цитированием
Старый 15.02.2010, 22:01   #13
al072
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Вместо close используйте closesocket()
Вместо read используйте recv - параметры смотрите в доках.
Вместо write используйте send - параметры аналогично в документации.
почитал в документации по поводу функций recv и send, если правильно понял, то они возвращают по 4 параметра, заменил в коде read на recv, write на send следующим образом:
Код:
if(recv(csock,&msg, sizeof(msg),0) >0 )		//пробуем читать данные от клиента
{
  if(strstr(msg, "hello"))//если получено "hello"
{
memset(&msg, 0, sizeof(msg));//обнуляем буфер
strcpy(msg, "hello, ");//формируем строку ответа
strcat(msg, inet_ntoa(remaddr.sin_addr));//преобразовываем адрес клиента в строку
strcat(msg, " !!!\n\0");//завершаем строку ответа
send(csock, msg, sizeof(msg),0);//отсылаем ответ			
}
В итоге получил в ответ от компилятора 1 предупреждение и одну ошибку:
1) warning C4996: 'strerror': This function or variable may be unsafe. Consider using strerror_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
2) error C2664: 'recv' : cannot convert parameter 2 from 'char (*)[21]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
al072 вне форума Ответить с цитированием
Старый 16.02.2010, 20:57   #14
al072
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 20
По умолчанию

Матвей!можешь помочь в данном вопросе?
al072 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разница исполнения под Windows XP и Windows Server 2003? -Nast- Общие вопросы Delphi 0 02.06.2009 09:20
Переделать программу под структуры. Си++ Влад-mego Помощь студентам 0 12.04.2009 22:14
Помогите переделать 2 задачи под динамические массивы (Паскаль) mpegable Помощь студентам 2 27.05.2008 17:32
помогите переделать программы под задание Povar Паскаль, Turbo Pascal, PascalABC.NET 7 22.05.2008 15:59