Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191

Чат

04.08.2010, 15:38. Показов 3186. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можете кто нить кинуть исходник простенького чата с сервером?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.08.2010, 15:38
Ответы с готовыми решениями:

Чат
Кто может показать рабочий пример TcpClient->TcpServer, что б при запуске клиента отправлялось сообщение серверу и наоборот (Будем с...

Чат
Нужен совет, как реализовать два и более подключения к серверу.

чат
Создал чат с помощью Socket киент и сервер при подключении клиента к серверу происходит такая ошибка Asynchronous socket error 10060.

9
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
04.08.2010, 15:53
ProstoMad, может быть, будет вам полезно Отладка кода Клиент/Сервер ?
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
04.08.2010, 17:01  [ТС]
Кто нить если может помочь, напишите то что я не понял или исправьте что не правильно подписал пжл.
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{     //При включении сервера Пишется в статик "Connected" и активируется кнопка2
    StaticText1->Caption="Connected";
        Button2->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
 
 
{       //Сервер Создает порт 3000 и включается
    
        ServerSocket1->Port=3000;
        ServerSocket1->Active=true;
 
 
        //Клинт подключается к серверу с ИП"127.0.0.1" и портом 3000
 
    ClientSocket1->Address="127.0.0.1";
        ClientSocket1->Port=3000;
        ClientSocket1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
 
 
{         //при отключении сервера в статике пишется "Connected" и кнопка 2 недоступна
    StaticText1->Caption="Connected";
        Button2->Enabled=false; 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
 
 
     //это не знаю что
{
    ErrorCode=0;    
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
 
      //тоже не знаю
{
    Memo1->Lines->Add("Client has received from server: "+Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
 
        //не уверен, но кажется при подключении сервера к клиенту
{
    StaticText2->Caption="Connected";
        Button3->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
 
 
        //при отключении сервера от клиента пишется в статик и недоступна кнопка
{
    StaticText2->Caption="Disconnected";
        Button2->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientError(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
 
          //незнаю
{
    ErrorCode=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
 
           //знаю только то что добавляется строка в мемо, а вот что такое +Socket->ReceiveText()
          //и что за событие
{
    Memo1->Lines->Add("Server has received from client: "+Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
 
       //если клиент включен, то что то пишется, а куда хз.
{
    if(ClientSocket1->Active)
        ClientSocket1->Socket->SendText("Hallo server!!!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
 
 
        //то же самое, только еще Connections[0] зачем то добавилось
{
    if(ServerSocket1->Active)
        ServerSocket1->Socket->Connections[0]->SendText("Hallo Client!!!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
 
 
     //отрубаются клиент и сервер
{
    ServerSocket1->Active=false;
        ClientSocket1->Active=false;
}
//---------------------------------------------------------------------------
Добавлено через 23 минуты
и я еще пытаюсь разделить на две программы, клиент и отдельно сервер.
Вот код сервера
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString S="Сообщение от серва";
AnsiString C="Сообщение от клиента";
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   Memo1->Text="";
}
/* //---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText1->Caption="Connected";
        Button2->Enabled=true;
}
*/ //---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
        ServerSocket1->Port=3000;
        ServerSocket1->Active=true;
    /*ClientSocket1->Address="127.0.0.1";
        ClientSocket1->Port=3000;
        ClientSocket1->Active=true; */
}
/* //---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText1->Caption="Connected";
        Button2->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
    ErrorCode=0;    
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
    Memo1->Lines->Add("Client has received from server: "+Socket->ReceiveText());
}
*/ //---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText2->Caption="Connected";
        Button3->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText2->Caption="Disconnected";
        //Button2->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientError(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
    ErrorCode=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
    Memo1->Lines->Add("пишет "+Socket->ReceiveText());
}
/* //---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    if(ClientSocket1->Active)
        ClientSocket1->Socket->SendText(C);
}
*/ //---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    if(ServerSocket1->Active)
        ServerSocket1->Socket->Connections[0]->SendText(S);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
    ServerSocket1->Active=false;
        //ClientSocket1->Active=false;
}
//---------------------------------------------------------------------------
Пишет ошибки:
[C++ Error] Unit1.cpp(89): E2316 '_fastcall TForm1::Button3Click(TObject *)' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(95): E2316 '_fastcall TForm1::FormClose(TObject *,TCloseAction &)' is not a member of 'TForm1'
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
04.08.2010, 17:02
Вот поэтому, разработку ПО нужно начинать с прочтения документации к компоненту, которым вы собираетесь пользоваться.

ClientSocket1Error - это событие, которое возникает при возбуждении исключения в TClientSocket. Что автор хотел сказать строкой Error = 0 - неизвестно! Исключения нужно обрабатывать, а не просто пропускать.

ClientSocket1Read - событие, возникающее тогда, когда клиент получает данные.
ServerSocket1ClientConnect - событие идентифицирует подключение клиента к серверу.

Цитата Сообщение от ProstoMad Посмотреть сообщение
C++
1
ServerSocket1->Socket->Connections[0]->SendText("Hallo Client!!!");
Класс Connections содержит список всех активных подключений, поэтому номер будет "указывать" сокет для посылки данных.

Цитата Сообщение от ProstoMad Посмотреть сообщение
Пишет ошибки:
[C++ Error] Unit1.cpp(89): E2316 '_fastcall TForm1::Button3Click(TObject *)' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(95): E2316 '_fastcall TForm1::FormClose(TObject *,TCloseAction &)' is not a member of 'TForm1'
Вполне логичные ошибки!
Кнопка Button3 присутствует на форме? (у неё указан обработчик OnClick?)
У Form1 не определён обработчик OnClose.
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
04.08.2010, 17:10  [ТС]
если на Форме на кнопку нажать два раза он не в событие OnClick записывает?
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
04.08.2010, 17:18
ProstoMad, именно в OnClick.
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
04.08.2010, 17:33  [ТС]
когда делать из этого клиент, что делать например с этим:
C++
1
2
3
4
5
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
    Memo1->Lines->Add("пишет "+Socket->ReceiveText());
}
Добавлено через 21 секунду
его оставлять или убирать?

Добавлено через 4 минуты
наверн удалять)

Добавлено через 9 минут
Терь клиент не получается((
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "ClientUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString S="серв";
AnsiString C="клиент";
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   Memo1->Text="";
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
        /*ServerSocket1->Port=3000;
        ServerSocket1->Active=true;*/
    ClientSocket1->Address="109.191.48.25";
        ClientSocket1->Port=3000;
        ClientSocket1->Active=true;
}
 
/* //---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText2->Caption="Connected";
        Button3->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText2->Caption="Disconnected";
        //Button2->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientError(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
    ErrorCode=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
    Memo1->Lines->Add("пишет "+Socket->ReceiveText());
}
 
//---------------------------------------------------------------------------  */
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    if(ClientSocket1->Active)
        ClientSocket1->Socket->SendText(C);
}
 
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
    //ServerSocket1->Active=false;
        ClientSocket1->Active=false;
}
/* //---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        if(ServerSocket1->Active)
        ServerSocket1->Socket->Connections[0]->SendText(S);
}
//--------------------------------------------------------------------------- */
 
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText1->Caption="Connected";
        Button3->Enabled=true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
    StaticText1->Caption="Connected";
        Button3->Enabled=false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ClientSocket1Connecting(TObject *Sender,
      TCustomWinSocket *Socket)
{
StaticText1->Caption="Connected";        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Вам пишет "+Socket->ReceiveText());
}
//---------------------------------------------------------------------------
[Linker Error] Unresolved external '__fastcall TForm1::ServerSocket1ClientConnect(Syste m::TObject *, Scktcomp::TCustomWinSocket *)' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\PROJECTS\ЧАТ\CLIENTUNIT.OBJ
[Linker Error] Unresolved external '__fastcall TForm1::ServerSocket1ClientDisconnect(Sy stem::TObject *, Scktcomp::TCustomWinSocket *)' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\PROJECTS\ЧАТ\CLIENTUNIT.OBJ
[Linker Error] Unresolved external '__fastcall TForm1::ServerSocket1ClientError(System: :TObject *, Scktcomp::TCustomWinSocket *, Scktcomp::TErrorEvent, int&)' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\PROJECTS\ЧАТ\CLIENTUNIT.OBJ
[Linker Error] Unresolved external '__fastcall TForm1::ServerSocket1ClientRead(System:: TObject *, Scktcomp::TCustomWinSocket *)' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\PROJECTS\ЧАТ\CLIENTUNIT.OBJ
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
04.08.2010, 17:36
Цитата Сообщение от ProstoMad Посмотреть сообщение
[Linker Error] Unresolved external '__fastcall TForm1::ServerSocket1ClientConnect(Syste m::TObject *, Scktcomp::TCustomWinSocket *)' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\PROJECTS\ЧАТ\CLIENTUNIT.OBJ
В заголовочном файле объявлен прототип функции, которая нигде не была описана.
1
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
04.08.2010, 17:40  [ТС]
воо...) спс)
0
18 / 18 / 8
Регистрация: 21.04.2010
Сообщений: 110
05.08.2010, 10:53
а подскажите на idTCPservere чат построен

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
69
70
71
72
73
74
75
76
//---------------------------------------------------------------------------
 
 
 
void __fastcall TMainForm::IdTCPServer1Execute(TIdContext *AContext)
{
  Log->Items->Add("Client: "+AContext->Connection->IOHandler->ReadLn()) ;
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::Options1Click(TObject *Sender)
{
Form1->ShowModal();
}
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
if(!IdTCPClient1->Connected())IdTCPClient1->Connect(); else IdTCPClient1->Disconnect();
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
 
 IdTCPClient1->Disconnect();
 IdTCPServer1->Active=false;
 
}
 
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::IdTCPClient1Connected(TObject *Sender)
{
MessageBeep(-1);
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
 
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::ClientSendClick(TObject *Sender)
{
if(IdTCPClient1->Connected())
    IdTCPClient1->Socket->WriteLn(Edit1->Text);
}
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::IdTCPServer1Connect(TIdContext *AContext)
{
Log->Items->Add("Компутер присоединлся");
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::IdTCPServer1Disconnect(TIdContext *AContext)
{
Log->Items->Add("Компьютер отключился");
}
//---------------------------------------------------------------------------
 
 
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::IdTCPClient1Work(TObject *ASender, TWorkMode AWorkMode,
          __int64 AWorkCount)
{
Log->Items->Add("Server "+IdTCPClient1-> IOHandler->ReadLn());
 
 
}
fastcall TMainForm::IdTCPClient1Work << по идее данная процедура должна воспринимать сообщения от сервера но не читает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.08.2010, 10:53
Помогаю со студенческими работами здесь

чат в с++ билер
здравствуйте у меня есть код чата на с++ билдер он компилится но не работает можете пожалуйста сказать где ошибка Сервер...

Чат на билдере
хочу написать подобие чата на билдере все, что нашел в гугле...

gif + чат
Ой тема заезженная скорее всего но ответ не могу найти. Ребят Помогите кто знает компонент в котором можно отобразить gif смайлы...

Чат по Lan...
Есть локальная сеть, надо сделать чат, который будет работать по этой сети. Чат должет уметь отправлять и принимать текстовые сообщения,...

голосовой чат
Хочу терь понять как делается голосовой чат) дайте ссылку или исходник, или прост напишите че нить про это плз Заранее спасибо ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru