Тема: sockets Дата: 21.02.01 19:34 От кого: Jurik Кому: Artem
Здраствуйте Артём - я недавно вам слал мессаг на счёт того как сделать сервер на сокетах ... я разобрался сам уже ... загвоздка была в том, что функции Accept() как параметр надо было давать объект класса CSocket, но не тот, который я использую и вызываю ему функции Create(), Bind(), Listen() и так далее, а второй не троганный не инициализированный ! :) Для клиента и для сервера ... всё это дело вставляется в реакцию на нажатие кнопки ... я лично использовал Визард и делал Dialog based app.
Сервер:
CSocket ServerSocket, RecieveSocket; ServerSocket.Create(5544); ServerSocket.Bind(5544, "192.168.93.1"); ServerSocket.Listen(5); ServerSocket.Accept(RecieveSocket); CSocketFile file(&RecieveSocket); CArchive In(&file, CArchive::load); CArchive Out(&file, CArchive::store); CString string; In >> string; AfxMessageBox(string); ServerSocket.Close();
Клиент:
CSocket ClientSocket; ClientSocket.Create(); ClientSocket.Connect("192.168.93.1", 5544); CString buffer = " Hello World"; ClientSocket.Send(buffer, 500, 0); ClientSocket.Close();
Единственная непонятная ошибка !!! Когда сервер принимает строку, то он выводит её начиная со второго символа, а первый пропадает !!! :))) Но принцип понятен ! :)))) Буду рад если это окажется полезным ! Пока !
Шаг прислал Jurik.