Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2011, 17:05   #1
ромик0
Форумчанин
 
Регистрация: 23.05.2011
Сообщений: 121
По умолчанию приведите пример клиент-серверного приложения.

самый лёгкий пример. например отправить какой нибуть текст/букву на клиента.
ромик0 вне форума Ответить с цитированием
Старый 15.06.2011, 17:29   #2
Scaevola
Пользователь
 
Аватар для Scaevola
 
Регистрация: 08.06.2011
Сообщений: 25
По умолчанию

Здесь посмотри http://www.insidepro.com/kk/006/006r.shtml
Scaevola вне форума Ответить с цитированием
Старый 17.06.2011, 19:44   #3
fobiz
 
Регистрация: 17.06.2011
Сообщений: 3
По умолчанию

набросал очень простой пример. Клиент отправляет один символ серверу.
клиент:
Код:
#include <iostream>
#pragma comment( lib, "ws2_32.lib" )
#include <Windows.h>
#include <conio.h>
#define len 11
using namespace std;
void main()
{
	WSADATA wsaData;
	WSAStartup(MAKEWORD(2,0),&wsaData);
	SOCKET s;
	s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	struct sockaddr_in addr;
	addr.sin_family = AF_INET;
	addr.sin_port =htons(2301);
	addr.sin_addr.s_addr= inet_addr("127.0.0.1");
	connect(s, (SOCKADDR*)&addr, sizeof(SOCKADDR));
	char buf[len];
	strcpy(buf,"e");
	send(s, buf,11,0);
	shutdown(s,0);
	closesocket(s);
	WSACleanup();
	_getch();
}
сервер:
Код:
#include <iostream>
#pragma comment( lib, "ws2_32.lib" )
#include <Windows.h>
#include <conio.h>
#define len 11
using namespace std;
void main()
{
	WSADATA wsaData;
	WSAStartup(MAKEWORD(2,0),&wsaData);
	SOCKET s;
	s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	struct sockaddr_in addr;
	addr.sin_family = AF_INET;
	addr.sin_port =htons(2301);
	addr.sin_addr.s_addr= htonl(INADDR_ANY);
	bind(s,(SOCKADDR*)&addr, sizeof(addr));
	if(listen(s, 1)) return 0;
	int isize= sizeof(addr);
	SOCKET n= accept(s, (struct sockaddr*)&addr, &isize);
	char buf[len];
	recv(n,buf, len,0);
	if(buf[0]=='e')
		cout << buf[0];
	shutdown(s,0);
	closesocket(s);
	WSACleanup();
	_getch();
}
fobiz вне форума Ответить с цитированием
Старый 18.06.2011, 19:35   #4
igorrr37
 
Регистрация: 31.12.2010
Сообщений: 5
По умолчанию

отправляет строку
сервер
Код:
#include <iostream>
#include <string>
#include <boost/asio.hpp>//libws2_32.a, libboost_system.a
#include <windows.h>

int main (){
    std::cout<<"Server is running\n";
    try{
        boost::asio::io_service io;
        boost::asio::ip::tcp::acceptor acc(io, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 9090));
        std::string s="Hello from server!";
        while(true){
            boost::asio::ip::tcp::socket sock(io);
            acc.accept(sock);
            std::cout<<"Client has been accepted\n";
            boost::asio::write(sock, boost::asio::buffer(s));
        }
        acc.close();
    }
    catch(std::exception& e){
        char buf[512];
        CharToOem(e.what(), buf);
        std::cout<<buf<<std::endl;
    }
    return 0;
}
клиент
Код:
#include <iostream>
#include <boost/asio.hpp>//libws2_32.a, libboost_system.a
#include <windows.h>

int main(){
    std::cout<<"Client is running\n";
    try{
        boost::asio::io_service io;
        boost::asio::ip::tcp::socket sock(io);
        boost::asio::ip::tcp::endpoint endPoint(boost::asio::ip::address::from_string("127.0.0.1"), 9090);
        boost::system::error_code err;
        sock.connect(endPoint, err);
        if(err) throw boost::system::system_error(err);
        else std::cout<<"Connection established\n";
        boost::asio::streambuf sbuf;
        boost::asio::read_until(sock, sbuf, "!");
        std::cout<<&sbuf<<std::endl;
        sock.close();
    }
    catch(std::exception& e){
        char buf[512];
        CharToOem(e.what(), buf);
        std::cout<<"Exception was occured: "<<buf<<std::endl;
    }
    return 0;
}
igorrr37 вне форума Ответить с цитированием
Старый 18.06.2011, 20:43   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
boost::asio::ip::tcp::acceptor acc(io, boost::asio::ip::tcp::endpoint(boos t::asio::ip::tcp::v4(), 9090));
ад существует
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 18.06.2011, 21:19   #6
ромик0
Форумчанин
 
Регистрация: 23.05.2011
Сообщений: 121
По умолчанию

ужас........Я из исходника ничего не понял , а где про это(на каком сайте) дают что то подобное базовым знаниям?за исходники спасибо.
ромик0 вне форума Ответить с цитированием
Старый 18.06.2011, 21:45   #7
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

http://www.programmersforum.ru/showt...E5%F0%EA%EB%E8
counter вне форума Ответить с цитированием
Старый 18.06.2011, 22:20   #8
fobiz
 
Регистрация: 17.06.2011
Сообщений: 3
По умолчанию

ромик0, поищи в поисковике книгу "Программирование на с++ глазами хакера" в формате chm. Там подробно расписано про работу с сетью и программирование сокетов.
fobiz вне форума Ответить с цитированием
Старый 22.06.2011, 00:01   #9
ромик0
Форумчанин
 
Регистрация: 23.05.2011
Сообщений: 121
По умолчанию

спасибо...)))
ромик0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
трехуровневая архитектура клиент-серверного приложения (3 tier architecture) Nomad13 Общие вопросы .NET 1 07.09.2010 14:25
Разработка клиент-серверного приложения Sabber БД в Delphi 0 19.05.2010 12:25
Разработка клиент-серверного приложения на PHP IlyaGT Помощь студентам 1 09.04.2009 10:18
Разработка клиент - серверного приложения Spyer Работа с сетью в Delphi 5 16.01.2008 15:46