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

winsock

18.10.2012, 18:49. Показов 1497. Ответов 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
8488 / 6155 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru