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

Ваш аккаунт

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

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

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

Работа с сетью

4.5K
23 сентября 2006 года
e-XperT
127 / / 04.07.2006
Есть две программы одна клиент и другая сервер. Ниже приведен код их потоков для работы с сетью
Сервер:
Код:
SOCKET soc = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_port   = htons(2000);
sin.sin_addr.s_addr = INADDR_ANY;
int err = bind(soc,(LPSOCKADDR)&sin,sizeof(sin));
err = listen(soc,SOMAXCONN) ;
SOCKADDR_IN from;
int fromlen = sizeof(from);
SOCKET socin = accept(soc,(LPSOCKADDR)&from,&fromlen);
char *Buf;
Buf = new char[2];
while(recv(socin,Buf,sizeof(Buf),0)!=SOCKET_ERROR) AfxMessageBox(Buf);

Клиент:
Код:
SOCKET soc = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_port   = htons(2000);
sin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
connect(soc,(LPSOCKADDR)&sin,sizeof(SOCKADDR_IN));
char *Msg;
Msg = new char[2];
Msg = "aa";
send(soc,Msg,sizeof(Msg),MSG_DONTROUTE);
closesocket(soc);
return 0;

Проблема в том, что после завершения работы потока клиента на сервере постоянно начинает вылезать AfxMessageBox(...) , как будто постоянно происходит передача данных от клиента. В мсдн написано, что перед closesocket необходимо вызвать shutdown только у меня стоит 6 студия и она не хочет понимать второй параметр передаваемый в эту функцию SD_SEND и другие тоже. Вопрос: как закрыть сокет клиента?
9.8K
25 сентября 2006 года
c@Dr
15 / / 31.08.2005
попробуй эту строку:
 
Код:
while(recv(socin,Buf,sizeof(Buf),0)!=SOCKET_ERROR) AfxMessageB(Buf);


заменить вот этой:
 
Код:
while(recv(socin,Buf,sizeof(Buf),0) > 0) AfxMessageBox(Buf);
4.5K
26 сентября 2006 года
e-XperT
127 / / 04.07.2006
Да. Так работает. Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог