С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449

winsock

18.10.2012, 18:49. Показов 1465. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда в клиенте отправляю сообщение приходит всегда число 10, найдите ошибку пожалуйста!
сервер:
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
TForm1 *Form1;
TLabel *lb1;
SOCKET sock,listener;
char buff[1024];
void myThread(void* pParams);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
 lb1 = *&Label1;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender) //нажмём на кнопку чтобы создать сервер
{
    WSADATA wData;
    int socket_name_size;
    int bytes_read;
    struct sockaddr_in addr;
    if(WSAStartup(MAKEWORD(1,1),&wData)!=0)
    {
 
 
    }
    listener=socket(AF_INET,SOCK_STREAM,NULL);  //create socket
    addr.sin_family=AF_INET;
    addr.sin_port=htons(3000);  //number port
    addr.sin_addr.s_addr=htonl(INADDR_ANY);
    socket_name_size=sizeof(addr);
 
    if(bind(listener,(struct sockaddr *)&addr,socket_name_size)<0)  //binding
    {
 
    }
    listen(listener,1);
    int *a=new int[2];
    char buffer1[15],buffer2[15];
    float answer1;
    float answer2;
    int error;
    _beginthread(myThread, 0, NULL);
}
//---------------------------------------------------------------------------
void myThread(void* pParams) //поток
{
    while(true)
    {
        sock=accept(listener,NULL,NULL);  //всё ли правильно тут?
        lb1->Caption=recv(sock,buff,10,0); //и тут?
 
    }
 
}

клиент
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
65
66
67
68
#include <iostream>
#include <sys/types.h>
#include <winsock2.h>
#include <memory.h>
#include <conio.h>
 
 
int main()
{
    WSADATA wData;
    struct sockaddr_in addr,serv_addr;
    SOCKET sock;
    if(WSAStartup(MAKEWORD(1,1),&wData)!=0)
    {
        std::cout<<"socket not initialized\n";
    }
    std::cout<<"socket initialized\n";
 
    sock=socket(AF_INET,SOCK_STREAM,0);
    if(sock==-1)
    {
        std::cout<<"socket not created\n";
    }
 
    addr.sin_family=AF_INET;
    addr.sin_port=htons(3000);
    addr.sin_addr.s_addr=htonl(INADDR_LOOPBACK);
    bind(sock,(struct sockaddr *)&addr,sizeof(addr));
 
    char HostName[1024];
    DWORD HostIP = 0;
    LPHOSTENT lphost;
    gethostname(HostName, 1024);
    lphost=gethostbyname(HostName);
    serv_addr.sin_family=AF_INET;
    memcpy((char*)&serv_addr.sin_addr,lphost->h_addr,lphost->h_length);
    serv_addr.sin_port=htons(3000);
 
    int error;
    if(connect(sock,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
    {
        std::cout<<"connect error\n";
        error=WSAGetLastError();
        std::cout<<error<<"\n";
        _getch();
        return 1;
    }
    std::cout<<"connect success\n";
 
 
char message1[10];
char message2[10];
char message3[10];
 
char buff[15];
 
std::cout<<"insert value\n";
std::cin>>message1;  send(sock,message1,sizeof(message1),0);
std::cin>>message2;  send(sock,message2,sizeof(message2),0);
std::cin>>message3;  send(sock,message3,sizeof(message3),0);
 
 
    shutdown(sock,2);
    closesocket(sock);
    WSACleanup();
    return 0;
 
}
Добавлено через 7 часов 8 минут
разобрался
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2012, 18:49
Ответы с готовыми решениями:

WinSock
#include &quot;winsock2.h&quot; #define MAX_PACKET_SIZE 4096 WSADATA ws; hostent* hn; char buff ; if (FAILED (WSAStartup (MAKEWORD( 2,...

Winsock и C++
Есть сервер и клиент, в общем всё работает, но как сделать чтобы к серверу могло подключиться 100+ клиентов? Доработайте код если не...

Winsock
Всем привет.Начал разбиратся с сокетами и сразуже появились проблемы отправки и получения данных.Клиент к серверной части конектится...

2
26 / 26 / 3
Регистрация: 13.04.2012
Сообщений: 61
30.10.2012, 16:28
В коде сервера ошибка в строке:
C++
1
lb1->Caption=recv(sock,buff,10,0);
Посмотрите в справочнике, что возвращает функция recv.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.11.2012, 04:17
http://citforum.ru/book/cook/winsock.shtml
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2012, 04:17
Помогаю со студенческими работами здесь

WinSock
Имеется два приложения. Они связываются через winsock... но если отослать что-либо от одного приложения к другому принимающая сторона...

WinSock на C++
Только начинаю осваивать WinSock написал простейшее приложение-сервер и приложение-клиент и че та у меня не работает вот код...

Winsock
День добрый. Есть такой код: long CUDPInterface::OpenPort() { m_connection_state = false; if(m_sock != INVALID_SOCKET) ...

WinSock
Есть самоучители на чистом Си по теме WinSock??

c++ winSock
Всем привет. У меня возникла проблема, не понятно из-за чего не хочет биндить ни клиент, ни сервер. Клиент: //Client-UDP ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru