я перепутала) 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);
}