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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 21:39   #1
vaan.sk
Пользователь
 
Аватар для vaan.sk
 
Регистрация: 10.03.2010
Сообщений: 30
По умолчанию Проскакивает цикл при проверке Сокета

почему то всегда данный параметр равен -1 и проскакивает весь цикл, хотя должен выполнятьс:
if ( (sock=socket(AF_INET, SOCK_STREAM, 0)) != SOCKET_ERROR)

вот код:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")

//---------------------------------------------------------------------------
enum {BUFSIZE=256};

int main(int argc, char* argv[])
{
        int sock, clnsock;
        int SRV_PORT;
        char ibuf[BUFSIZE], obuf[BUFSIZE];
        struct sockaddr_in san;
        //Создание серверного сокета

        if ( (sock=socket(AF_INET, SOCK_STREAM, 0)) != SOCKET_ERROR)
                { san.sin_family = AF_INET;
                  cout << "Server Port: ";
                  cin >> SRV_PORT;
                        if (SRV_PORT < 1 || SRV_PORT > 65535)
                           {
                                cout << "Port Error";
                                getch ();
                                return 0;
                           }
                  san.sin_port = htons (SRV_PORT);
                  san.sin_addr.s_addr=htonl(INADDR_LOOPBACK);
        //привязка адреса и перевод в серверный режим
        if (bind(sock,(struct sockaddr*)&san,sizeof(san))==0 && listen (sock,1)==0)
                {//принмимаем соединение
                        if ((clnsock=accept(sock,NULL,0))!= SOCKET_ERROR)
                                { //получение запроса
                                        if (recv (clnsock, ibuf, sizeof(ibuf),0)>0)
                                                {//форм. рез-т.
                                                        strcat (strcpy(obuf,ibuf),ibuf);
                                                        //send message
                                                        send (clnsock, obuf, strlen(obuf)+1,0);
                                                      closesocket (clnsock);
                                                }
                                }
                                closesocket (sock);
                }
                return 0;

        }
}
//---------------------------------------------------------------------------
vaan.sk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проскакивает ввод MeTeOpA Общие вопросы C/C++ 2 18.05.2011 19:40
компилятор проскакивает строчку fredwriter Помощь студентам 8 05.10.2010 17:20
Ошибка при проверке программы Mihanches Работа с сетью в Delphi 12 19.09.2010 14:42
Ошибка при проверке суммы вода. Djanius Компоненты Delphi 2 16.08.2010 20:35
программное переключение словаря при проверке орфографии методами MS Word tojhto Общие вопросы Delphi 2 06.09.2008 01:54