информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Написал сервер на C++... Но вот косячокс небольшой вышелс.. 18.02.02 12:17  Число просмотров: 1088
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> написал сервер:
> #include <stdio.h>
> #include <winsock.h>
> #define WINSOCK_VERSION 0x0101
> void main()
> {
> WSADATA wsaData;
> struct sockaddr add;
> struct sockaddr_in addr;
> int add_len;
> add_len = sizeof(sockaddr);
> int acc;
> int sock;
> char buf[1024];
> (WSAStartup(WINSOCK_VERSION, &wsaData));
> {
> sock = socket(PF_INET, SOCK_STREAM, 0);
> addr.sin_family = AF_INET;
> addr.sin_port = htons(4000);
> addr.sin_addr.s_addr = INADDR_ANY;
> bind(sock,( struct sockaddr *) &addr, sizeof(sockaddr_in));
> listen(sock,10);
> acc = accept(sock,(struct sockaddr *) &add, &add_len);
> {
> do
> {
> recv(acc,buf,sizeof(buf),0);
>
> if (strncmp("say",buf,4) !=0)
> printf("RABOTAET!");
> }
> while( strncmp("bye\r", buf,4) !=0);
> }
>
> }}
> Псоле отсылания "bye" Почему то пишется еще раз "Rabotaet!"
судя по твоему коду так и должно быть
ты посылаешь bye
> if (strncmp("say",buf,4) !=0)
естественно say <> bay поэтому печатается строка
printf("RABOTAET!");

P.S. Вообще существует такая замечательная вещь как отладчик.

> Как избавиться!?
я надеюсь, что ты догадаешься ;-)
<programming>
[C++] Написла сервер на C++... Но вот косячокс небольшой вышелс.. 17.02.02 11:49  
Автор: BigEye Статус: Незарегистрированный пользователь
<"чистая" ссылка>
написал сервер:
#include <stdio.h>
#include <winsock.h>
#define WINSOCK_VERSION 0x0101
void main()
{
WSADATA wsaData;
struct sockaddr add;
struct sockaddr_in addr;
int add_len;
add_len = sizeof(sockaddr);
int acc;
int sock;
char buf[1024];
(WSAStartup(WINSOCK_VERSION, &wsaData));
{
sock = socket(PF_INET, SOCK_STREAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(4000);
addr.sin_addr.s_addr = INADDR_ANY;
bind(sock,( struct sockaddr *) &addr, sizeof(sockaddr_in));
listen(sock,10);
acc = accept(sock,(struct sockaddr *) &add, &add_len);
{
do
{
recv(acc,buf,sizeof(buf),0);

if (strncmp("say",buf,4) !=0)
printf("RABOTAET!");
}
while( strncmp("bye\r", buf,4) !=0);
}

}}
Псоле отсылания "bye" Почему то пишется еще раз "Rabotaet!" Как избавиться!?
[C++] Написал сервер на C++... Но вот косячокс небольшой вышелс.. 18.02.02 12:17  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
> написал сервер:
> #include <stdio.h>
> #include <winsock.h>
> #define WINSOCK_VERSION 0x0101
> void main()
> {
> WSADATA wsaData;
> struct sockaddr add;
> struct sockaddr_in addr;
> int add_len;
> add_len = sizeof(sockaddr);
> int acc;
> int sock;
> char buf[1024];
> (WSAStartup(WINSOCK_VERSION, &wsaData));
> {
> sock = socket(PF_INET, SOCK_STREAM, 0);
> addr.sin_family = AF_INET;
> addr.sin_port = htons(4000);
> addr.sin_addr.s_addr = INADDR_ANY;
> bind(sock,( struct sockaddr *) &addr, sizeof(sockaddr_in));
> listen(sock,10);
> acc = accept(sock,(struct sockaddr *) &add, &add_len);
> {
> do
> {
> recv(acc,buf,sizeof(buf),0);
>
> if (strncmp("say",buf,4) !=0)
> printf("RABOTAET!");
> }
> while( strncmp("bye\r", buf,4) !=0);
> }
>
> }}
> Псоле отсылания "bye" Почему то пишется еще раз "Rabotaet!"
судя по твоему коду так и должно быть
ты посылаешь bye
> if (strncmp("say",buf,4) !=0)
естественно say <> bay поэтому печатается строка
printf("RABOTAET!");

P.S. Вообще существует такая замечательная вещь как отладчик.

> Как избавиться!?
я надеюсь, что ты догадаешься ;-)
[C++] Написла сервер на C++... Но вот косячокс небольшой вышелс.. 17.02.02 12:41  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
> sock = socket(PF_INET, SOCK_STREAM, 0);

Ваще то AF_INET надо юзать

А что касаеца косячка, то видимо ты чтото не правильно делаешь в лупе "do"

Принимать данные надо пока сокет != SOCKET_ERROR
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach