Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [C++/MFC] Клиент-серверный чат  (Прочитано 10300 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Merzaffka
Интересующийся

ru
Offline Offline

« : 28-03-2011 14:03 » 

Я пишу Чат в Visual Studio 2008...
Я новичок, но с большим трудом и помощью интернета написала и Сервер и Клиент...
но... мне теперь надо их  объединить...
мб кто-нибудь подскажет как это можно сделать?
« Последнее редактирование: 30-03-2011 11:12 от Алексей1153++ » Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #1 : 28-03-2011 14:06 » 

А если запустить?
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 29-03-2011 04:54 » 

Visual Studio 6
Visual Studio 2006

?
ой
а поточнее )))



Код показывай. А что значит - объединить сервер и клиент?
Записан

Merzaffka
Интересующийся

ru
Offline Offline

« Ответ #3 : 29-03-2011 11:54 » 

я перепутала) 2008)

ну чтоб одна программа и принимала и передавала....

код:

Сервер передаёт:

Код:
При нажатие на кнопку  Send:
void CServerokDlg::OnBnClickedButton3()
{
char Buffer [1024];
// подготавливаем буффер для введенного текста
 int BufLength=m_edit1.GetWindowText(LPTSTR(Buffer), 1024);
//записываем введенную строку в буфер
 SendSocket.Send(Buffer,BufLength+1);

}

при нажатии на кнопку Connect:
void CServerokDlg::OnBnClickedButton1()
{
AfxSocketInit(); // Иннициализация системы сокетов
CSocket MySocket; //создаем класс сокета сервера
if(!MySocket.Create(22222))
{
AfxMessageBox(TEXT("Сокет не создан"));
}
// вызываем функцию создания и иннициализации сокета
MySocket.Listen(); // слушаем запросы от клиентов
MySocket.Accept(SendSocket);
AfxMessageBox(TEXT("Готов!"));
}

При нажатии на кнопку Quit:
void CServerokDlg::OnBnClickedButton2()
{
SendSocket.Close(); // Закрываем сокет
     CDialog::OnCancel();// Закрывем программу
}

Клиент принимает:
Код:
при нажатии на кнопку Connect:
void CServerDlg::OnBnClickedConnect()
{
// TODO: Add your control notification handler code here
if(!MySocket1.Create())
  {AfxMessageBox(TEXT("Не создаётся сокет... =("));}
// создание сокета.....
if(!MySocket1.Connect(LPCTSTR("127.0.0.1"),22222))
  {AfxMessageBox(TEXT("Нет соединения"));}
void CKlientDlg::OnBnClickedButton2()
{
// TODO: Add your control notification handler code here
MySocket1.Close(); // Закрываем сокет
CDialog::OnCancel(); // Закрывем программу
}

void CKlientDlg::OnBnClickedButton3()
{
// TODO: Add your control notification handler code here
int BufferLenght=10;
MySocket1.Receive(&BufferLenght,4);
char* Buffer = new char[BufferLenght+1];
Buffer[BufferLenght]=0;
MySocket1.Receive(Buffer,BufferLenght);
MessageBox(LPCTSTR(Buffer),LPCTSTR(""),MB_OK);


delete Buffer;
}


Описываем добавленные функцию OnReceive:
}

void CServerDlg::OnReceive()
{
char *Buffer =new char[1025];
//Записываем полученные данные в Buffer
//Записываем в n количество полученных байтов
int n=MySocket1.Receive(Buffer , 1024);
//Отсекаем лишние символы
Buffer [n]=NULL;
//Записываем данные в переменную, связанную с edit'ом
m_edit1=Buffer ;
UpdateData(FALSE);
}
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 30-03-2011 11:14 » 

ну как бы - оба класса в однин проект скинуть, создать по экземпляру, запустить. И вот они начнуть пересылать ))

 а смысл? это для отладки?
Записан

Merzaffka
Интересующийся

ru
Offline Offline

« Ответ #5 : 30-03-2011 12:01 » 

Смысл в том, что у меня должен быть 2 аппарата и каждый и приёмник и передатчик. Т.е. каждый аппарат будет посылать информацию в зависимости от того, что ему прислали...

я что-то слышала про многопоточность... но вообще не представляю как её реализовать...((
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 30-03-2011 17:52 » 

Merzaffka, запусти два процесса. Делов то Улыбаюсь Какие такие аппараты ? Это будут железяки ?
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 30-03-2011 21:42 » 

Merzaffka, А сделать виртуальную машину. И на ней испытывать?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Merzaffka
Интересующийся

ru
Offline Offline

« Ответ #8 : 05-04-2011 11:06 » 

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

это будет приёмник-передатчик
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines