Форум программистов, компьютерный форум CyberForum.ru

Работа с TCP/IP протоколами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Tural
Сообщений: n/a
27.06.2011, 12:04     Работа с TCP/IP протоколами #1
Здравствуйте!
Хочу реализовать свою идею. Но не знаю с чего начать. Подскажите пожалюста, на каком языке лучше написать такую прогу, или может есть такая прога. Жду ваших предложений и советов
Идея такова: Программа
1) должна работать в локалной сети
2) будет состоит из двух частей: админ и клиент
Директор посылает задачу конкретному работнику через админку. Админка запоминает время и добавляет задачу в таблицу (бд). На другой стороне появляется уводемление о новой задаче. После выполнении задачи работник ставит галочку на задачу. И клиент отправляет "сигнал" на админку о выполнении задачи. После этого соотв. ячейка меняет цвет. Заранее спс.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 12:04     Работа с TCP/IP протоколами
Посмотрите здесь:

Связь по TCP C++
C++ TCP/IP передача писем от сервера клиенту
C++ WinSock tcp client/server
TCP клиент/сервер C++
Общение игрострой TCP/UDP C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Qwerty_coder
29 / 29 / 2
Регистрация: 14.12.2009
Сообщений: 79
27.06.2011, 14:52     Работа с TCP/IP протоколами #2
Tural, Qt вам в помощь.

Там есть много готовых классов для работы с сетью.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
27.06.2011, 16:49     Работа с TCP/IP протоколами #3
консольный чат
сервер
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
#include <iostream>
#include <string>
#include <boost/asio.hpp>
#define BOOST_THREAD_USE_LIB
#include <boost/thread.hpp>
#include <windows.h>
typedef boost::asio::ip::tcp tcp;
 
tcp::socket* pSock;
 
void Receive(){
    boost::asio::streambuf sbuf;
    while(true){
        boost::asio::read_until(*pSock, sbuf, "\n");
        std::cout<<&sbuf;
    }
}
 
int main (){
    SetConsoleOutputCP(1251);
    std::cout<<"Server is running\n";
    boost::asio::io_service io;
    tcp::socket sock(io);
    tcp::acceptor acc(io, tcp::endpoint(tcp::v4(), 9090));
    std::string s;
    acc.accept(sock);
    std::cout<<"Client has been accepted\n";
    pSock=&sock;
    boost::thread t(Receive);
    while(true){
        std::getline(std::cin, s);
        s+="\n";
        boost::asio::write(sock, boost::asio::buffer(s));
    }
    sock.shutdown(tcp::socket::shutdown_both);
    sock.close();
    acc.close();
    return 0;
}
клиент
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
#include <iostream>
#include <boost/asio.hpp>
#include <windows.h>
#define BOOST_THREAD_USE_LIB
#include <boost/thread.hpp>
typedef boost::asio::ip::tcp tcp;
 
tcp::socket* pSock;
 
void Send(){
    std::string s;
    while(true){
        std::getline(std::cin, s);
        s+="\n";
        boost::asio::write(*pSock, boost::asio::buffer(s));
    }
}
 
int main(){
    SetConsoleOutputCP(1251);
    std::cout<<"Client is running\n";
    boost::asio::io_service io;
    boost::asio::ip::tcp::socket sock(io);
    pSock=&sock;
    boost::asio::ip::tcp::endpoint endPoint(boost::asio::ip::address::from_string("127.0.0.1"), 9090);
    boost::system::error_code err=boost::asio::error::host_not_found;
    sock.connect(endPoint, err);
    if(err){std::cerr<<err.message(); return 1;}
    else std::cout<<"Connection established\n";
    boost::thread t(Send);
    boost::asio::streambuf sbuf;
    while(true){
        boost::asio::read_until(sock, sbuf, "\n");
        std::cout<<&sbuf;
    }
    sock.shutdown(tcp::socket::shutdown_both);
    sock.close();
    return 0;
}
Avazart
 Аватар для Avazart
6903 / 5143 / 253
Регистрация: 10.12.2010
Сообщений: 22,614
Записей в блоге: 17
03.02.2015, 21:08     Работа с TCP/IP протоколами #4
igorrr37, А разве так можно писать в сокет и читать из него в разных потоках? Т.е потокобезопасно ли?
Avazart
 Аватар для Avazart
6903 / 5143 / 253
Регистрация: 10.12.2010
Сообщений: 22,614
Записей в блоге: 17
13.02.2015, 23:09     Работа с TCP/IP протоколами #5
Может кто ответить насколько корректен данный код?
И можно ли поступать аналогичным образом с WinSocks ?
Yandex
Объявления
13.02.2015, 23:09     Работа с TCP/IP протоколами
Ответ Создать тему
Опции темы

Текущее время: 20:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru