Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
29.02.2012, 09:22  [ТС]

bind, listen функции не работают

29.02.2012, 09:22. Просмотров 5652. Ответов 63
Метки (Все метки)

Ответ

vxg,
Блин, даже в консол переписал, и там тоже bind херачит...
Уже не то что думать а чем та, и кушать не могу... (
Вилетает: "bind function error: SOCKET_ERROR"
А WSAGetLastError показывает(10048)
Вот код в консоль:
Вот закоментированный код, легко понять
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <winsock2.h>
#include <stdio.h>
#include <iostream.h>
#define PORT 100//initialization of PORT
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
WORD makeword;//unsigned short(WORD) for MAKEWORD
WSADATA wsad;//WSAData initialization
SOCKET sockets,sockacc;//sockets initialization
unsigned char bufrec[1024];//buffer for receiving the data
unsigned char bufsend[256] = "Hello world";//buffer for send
char wsaer;//WSAGetLastError buff
SOCKADDR_IN soin = {0};//sockaddr initialization
SOCKADDR_IN soac = {0};//sockaddr for accept
int bindc,listenc,acci,recvc,sendc,wsaerror;//checking parameters
soin.sin_family = AF_INET;//addres family socket
soin.sin_port   = htons(PORT);//port for socket
soin.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//IP address for socket
makeword = MAKEWORD(2,2);//making word
 WSAStartup(makeword,&wsad);//startup the WSA
 sockets = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//creating the socket
  if(sockets == INVALID_SOCKET) printf("socket function error: INVALID_SOCKET.\n"); //if creation of socket is failed, printf
   else//if socket is created successfylly
    {
      bindc = bind(sockets,(sockaddr*)&soin,sizeof(soin)); //binding the socket
      if(bindc == SOCKET_ERROR) printf("bind function error: SOCKET_ERROR.\n"); //if bindig failed, printf
        else//if binding successfully completed
         {
           listenc = listen(sockets,SOMAXCONN);//listening the socket
           if(listenc == SOCKET_ERROR) printf("listen function error: SOCKET_ERROR");//if fail listening, printf
            else//if listening is successful
             {
              acci=sizeof(soac);//sizeof soac
              sockacc = accept(sockets,(sockaddr*)&soac,&acci);//accepting the socket from the server
               if(sockacc == INVALID_SOCKET) printf("accept funtion error: INVALID_SOCKET"); //if acception failed, printf
                else//if acception is successfully completed
                 {
                  recvc = recv(sockacc,&bufrec[0],sizeof(bufrec),0);//receiving data from server
                   if(recvc == -1) printf("recv function error: SOCKET_ERROR");//if receiving is failed, printf
                    else//if received successfully
                     {
                       sendc = send(sockacc,(const char*)&bufsend,sizeof(bufsend),0); //sending some data to the server
                       if(sendc == SOCKET_ERROR) printf("send function error: SOCKET_ERROR");//if cant send data, printf
                     }//received
                 }//accepted
             }//listened
         }//binded
                  wsaerror = WSAGetLastError();//Getting last error in the buffer
          printf("Error is: %d.\n",wsaerror);//printing the error code
      shutdown(sockets,SD_BOTH);//shutting down the socket
      shutdown(sockacc,SD_BOTH);//shutting down the socket
      WSACleanup();//cleaning up the WSA
      closesocket(sockets);//closing the main socket
      closesocket(sockacc);//closing the acception socket
        }
    system("pause");
    return 0;
}
Добавлено через 4 минуты
Ого, шас порт изменил на 100, как будто ждет чегота...

вышло?
Радоватся или нет?

Вернуться к обсуждению:
bind, listen функции не работают
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2012, 09:22
Готовые ответы и решения:

калькулятор <-> 2 функции не работают универсально
Мне задали проект калькулятор как в windows или хотя бы похож. я сделал но у...

Две функции работают по отдельности, когда вместе выскакивает ошибка
Добрый день! Две функции работают по отдельности, когда вместе выскакивает...

Освобождение памяти после std:bind
Что имею: - CentOS - gcc 4.8 - valgrind Что делаю - С помощью...

[C] Обязателен ли вызов listen() после bind()?
Например,требуется реализовать клиент-сервер по протоколу TFTP. В случае...

Listen to me или listen me
Здравствуйте, почему первый вариант верный? В каких случаях я ставится to? Есть...

63
Другие темы раздела
C++ Builder Определить скрытую папку http://www.cyberforum.ru/cpp-builder/thread450000.html
как определить, что папка имеет атрибут hidden?
C++ Builder Canvas и DrawGrid вывод изображения проблемки Всем привет. Ребят подскажите пожалуйста , если кто то знает. Я пытаюсь зделать не большой редакторй карт (480х320) Использую в виде сетки и оснвоы для карты DrawGrid. Обшарил кучу форумов.. пока... http://www.cyberforum.ru/cpp-builder/thread449978.html
Полезные Хедеры и немного инфы о них C++ Builder
Сразу к делу... Я сегодня в одном исходнике обнаружил в куче файлов обычно присущих проэкту, хедер файл который я скопировал в другой проэкт и заинклудил по названию и как не странно у меня...
Перенос проэкта из Buildera 6 в Rad XE C++ Builder
Всем добрый вечер! Мне нужна ваша помощ! :friends: Переношу проэкт из Buildera 6 в Rad XE и как всегда проблемы с одной строчкой: string drive = ComboBox1->Items->Strings.c_str(); Ошибка: ...
C++ Builder Прозрачность подстраивающаяся под рисунок на экране. http://www.cyberforum.ru/cpp-builder/thread449758.html
Есть картинка (она чуть ниже). Нужно, что бы при запуске программы белый фон (RGB:255.255.255) сливался с фоном (или как по другому назвать "тем что происходит на мониторе юзера") Не подскажете?...
C++ Builder На каком языке написана программа? в просторах интернета нашел очень интересную программу, которая может разрешать и запрещать доступ USB. На каком языке написано и как можно достать оттуда код? Знаю что там часть кода написано на... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru