Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при создании сокета 
V
    Опции темы
Ash313374
  Дата 10.8.2011, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.3.2009

Репутация: 1
Всего: 1



Добрый день!

 Пытаюсь написать простейшие клиент и сервер для передачи сообщения, но при создании сокета в консоли выводится ошибка socket: Error 0 (и у клиента, и у сервера). Билдер шестой.

 Подскажите, пожалуйста - может, нужно что-то ещё подключить. Вот код для сервера:

Код

#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
 
#include <conio.h>
#include <vcl.h>
 
#pragma hdrstop
#pragma argsused
int main()
{
    int sock, listener;
    struct sockaddr_in addr;
    char buf[1024];
    int bytes_read;
 
    listener = socket(AF_INET, SOCK_STREAM, 0);
    
    if(listener < 0)
    {
        perror("socket");
        getch();
        exit(1);
    }
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(666);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        getch();
        exit(2);
    }
 
    listen(listener, 1);
 
    while(1)
    {
        sock = accept(listener, NULL, NULL);
        if(sock < 0)
        {
            perror("accept");
            getch();
            exit(3);
        }
 
        while(1)
        {
            bytes_read = recv(sock, buf, 1024, 0);
 
            if(bytes_read <= 0) break;
            send(sock, buf, bytes_read, 0);
         }
    
          closesocket(sock);
 
         getch();
         return 0;
 
    } 

}


Это сообщение отредактировал(а) Ash313374 - 10.8.2011, 10:05
PM MAIL   Вверх
xvr
Дата 10.8.2011, 09:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Где WSAStartup?

PM MAIL   Вверх
Ash313374
Дата 10.8.2011, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.3.2009

Репутация: 1
Всего: 1



А можно подробнее? Желательно ответом, а не вопросом. Спасибо.
PM MAIL   Вверх
Ash313374
Дата 10.8.2011, 10:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.3.2009

Репутация: 1
Всего: 1



Спасибо, получилось!
Вот работающий код, может, кому-нибудь пригодится.

Код

#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
 
#include <conio.h>
#include <vcl.h>
 
#pragma hdrstop
#pragma argsused

WSADATA ws;//информация о сокете

int main()
{
    int sock, listener;
    struct sockaddr_in addr;
    char buf[1024];
    int bytes_read;
 
    if (FAILED (WSAStartup (MAKEWORD( 1,1 ), &ws)))
    {
       printf("Error in WSAStartup(...)\n");
       return 1;
    }

    listener = socket(AF_INET, SOCK_STREAM, 0);
    
    if(listener < 0)
    {
        perror("socket");
        getch();
        exit(1);
    }
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(666);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        getch();
        exit(2);
    }
 
    listen(listener, 1);
 
    while(1)
    {
        sock = accept(listener, NULL, NULL);
        if(sock < 0)
        {
            perror("accept");
            getch();
            exit(3);
        }
 
        while(1)
        {
            bytes_read = recv(sock, buf, 1024, 0);
 
            if(bytes_read <= 0) break;
            send(sock, buf, bytes_read, 0);
         }
    
          closesocket(sock);
 
         getch();
         return 0;
 
    } 

}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0943 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.