Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

В чем моя ошибка?(winsock)

841
13 августа 2006 года
_nic
199 / / 29.07.2006
Совсем недавно решил поизучать сокеты.Перерыл весь рунет в поисках статей , нашел прочитал ничего непонял,почитал msdn вроде немного разобрался.Решил попробовать что то написать,с отправляющей частью вроде получилось.Но вот спринимающий хз,вроде сделал все верно но компилятор ругается на 21(accept) строку - что неможет конвертировать unsigned int в * int .
Вот собственно сам код с ошибкой
Код:
#include <winsock.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

main()
{
char buf[32];
sockaddr_in serverip;
sockaddr_in klientip;
WSADATA wsaData;
SOCKET handleS;
SOCKET handleS2;
serverip.sin_family=AF_INET;
serverip.sin_port=htons(6666);
serverip.sin_addr.s_addr=INADDR_ANY;
WSAStartup(MAKEWORD(1,1),&wsaData);
handleS=socket(AF_INET,SOCK_STREAM,0);
bind(handleS,(sockaddr *) &serverip,sizeof(serverip));
listen(handleS,2);
handleS2=accept(handleS,(sockaddr *) &klientip ,sizeof(klientip));
recv(handleS2,buf,32,0);
getch();
printf(buf);
getch();
closesocket(handleS2);

}


Подскажите в чем ошибка?Опыта маловато так что сам понять не могу.
354
13 августа 2006 года
ШпиЁн
468 / / 19.02.2006
Вот как надо, все очень просто...
 
Код:
accept(handleS, (sockaddr*)&klientip, NULL);

:-))))
841
14 августа 2006 года
_nic
199 / / 29.07.2006
[QUOTE=ШпиЁн]Вот как надо, все очень просто...
 
Код:
accept(handleS, (sockaddr*)&klientip, NULL);

:-))))[/QUOTE]
Спасибо.А ещё у меня такой вопрос:как можно принять файл отправленный ф-цией TransmitFile ?
354
15 августа 2006 года
ШпиЁн
468 / / 19.02.2006
Вероятно через recv, как и все остальное. Файлы я передавать не пробовал через TransmitFile, считывал по кусочку и отсылал через send. TransmitFile оптимизированна под наилучшую производительность. :-))) Если нужен пример, могу набросать...
841
16 августа 2006 года
_nic
199 / / 29.07.2006
[QUOTE=ШпиЁн]Вероятно через recv, как и все остальное. Файлы я передавать не пробовал через TransmitFile, считывал по кусочку и отсылал через send. TransmitFile оптимизированна под наилучшую производительность. :-))) Если нужен пример, могу набросать...[/QUOTE]
Набросай если можно

PS:просьба к модерам преименуйте тему(если можно) в Вопросы по winsocket , или в что то близкое посмыслу
354
17 августа 2006 года
ШпиЁн
468 / / 19.02.2006
Вот пример. Вначале запустишь receiver.exe. Потом sender.exe, выберешь файл который передавать(попробуй текстовый). receiver сохранить ВСЁ что он принимает в файл data.txt. Естественно, что если есть firewall или брандмауэр, то проги нужно допустить к работе с сетью.

P.S. Это не лучший пример для работы с сетью, но он работает :-))))
841
23 августа 2006 года
_nic
199 / / 29.07.2006
В виндовсе есть аналог линуксовой ф-ции read?
354
23 августа 2006 года
ШпиЁн
468 / / 19.02.2006
:-))))))) а я думал что тут win32 программисты обитают...
841
24 августа 2006 года
_nic
199 / / 29.07.2006
[QUOTE=ШпиЁн]:-))))))) а я думал что тут win32 программисты обитают...[/QUOTE]
:confused: Я поинтересовался чем линуксовый read можно заменить при портирование кода под винду.
10K
25 августа 2006 года
Sonic_amiga
34 / / 19.06.2006
[QUOTE=_nic]:confused: Я поинтересовался чем линуксовый read можно заменить при портирование кода под винду.[/QUOTE]

recv(). Работает абсолютно идентично.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог