7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42

Передача файла из одного ПК к другому

21.02.2013, 21:53. Показов 2936. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно, чтоб я мог передавать файлы через com порт на другой комп'ютер через програму, но не знаю даже примерно как реализовать это.Я не прошу скинуть готовый код, всего лишь дайте мне указание на материалы(название или ссылку)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2013, 21:53
Ответы с готовыми решениями:

Передача свойства одного экземпляра класса другому экземпляру класса
#include <tchar.h> class A { public: A(); int aVar; }; class B : public A

Неправильная передача данных из одного файла в другой
Здравствуйте! Возникли проблемы с записью информации в файл. Часть кода: unsigned char bady, text, tx_bt; FILE *fp_in,...

Передача .exe другому
Хочу скинуть другу .exe скомпилированный проект в VS13 (Ctrl+F7). Скидываю просто .exe(Который я достал из Debug) программа не...

11
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,084
21.02.2013, 22:08
Открываешь COM порт как файл:
C++
1
2
3
4
5
6
int hf = FileOpen("COM1", fmOpenReadWrite);
 
//Далее пишешь в порт
FileWrite(hf, cmd, size);
//Читаешь из порта
FileRead(hf, buf, size);
Добавлено через 1 минуту
Последовательный порт
Работа с COM портом с использованием библиотеки TrComPort.dll (TrComPort_BCB.lib)

Добавлено через 6 минут
некоторые ещё советуют использовать Boost.Asio но я лично не смотрел эту штуку
1
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:12  [ТС]
Поподробней можно?
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,084
21.02.2013, 22:19
тут ещё поподробнее есть Асинхронная работа с COM портом.

Могу сам рассказать
Есть такая частица электрон, это нечто иное как материя.

Такие частицы могут перемещаться в металическом проводе(например медном). Когда они перемещаются возникает напряжение. Объяснить, что такое напряжение в проводе?
0
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:21  [ТС]
Да я про код поподробней написал=(
0
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
21.02.2013, 22:30
Достаточно знать такие WinAPI функции как
CreateFile
WriteFile
ReadFile
GetCommState
SetCommState
PurgeComm
CloseHandle

Если реализовывать чтение порта в отдельном потоке, ещё немного функций для работы с потоками и событиями
CreateThread
CreateEvent
SuspendThread
ResumeThread
SetEvent
WaitForSingleObject

Добавлено через 3 минуты
Пример из книги Ю.Магда. Программирование последовательных интерфейсов.
Приём данных из COM3 сохранение их в файл, вывод на экран, и отправка обратно по ком-порту.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <windows.h>
#include <stdio.h>
#include <conio.h>
 
char buf[128];
char *pbuf = buf;
int counter = 0;
 
HANDLE hCom, hEvent;
DWORD bytesRead, bWritten;
 
BOOL fSuccess;
HANDLE hThread;
DWORD dwParam, dwThreadId;
 
VOID WINAPI ThreadProc(PVOID* dummy)
{
 printf("Waiting for data from COM4...\n");
 while (true)
 {
     ReadFile(hCom,
              pbuf,
              1,
              &bytesRead,
              NULL);
     if (bytesRead > 0)
      {
       WriteFile(hCom,
                 pbuf++,
                 1,
                 &bWritten,
                 NULL);
                 counter++;
      if (counter == 10)
       {
        SetEvent(hEvent);
        buf[counter] = '\0';
        counter = 0;
        pbuf = buf;
       }
   }
 }
}
 
void main(void)
{
  char *pcComPort = "COM4";
  DCB dcb;
  FILE *fout;
 
  hCom = CreateFile(pcComPort,
                    GENERIC_READ | GENERIC_WRITE,
                    0,
                    NULL,
                    OPEN_EXISTING,
                    0,
                    NULL);
  if (hCom == INVALID_HANDLE_VALUE)
   {
     printf("COM4 opening error!\n");
     return;
   }
 
  GetCommState(hCom, &dcb);
  dcb.BaudRate = CBR_9600;
  dcb.ByteSize = 8;
  dcb.Parity = NOPARITY;
  dcb.StopBits = ONESTOPBIT;
  fSuccess = SetCommState(hCom, &dcb);
 
  if (!fSuccess)
   {
    printf ("SetCommState failed with error %d.\n", GetLastError());
    return;
   }
 
  printf ("Serial port %s successfully reconfigured.\n", pcComPort);
  GetCommState(hCom, &dcb);
  printf("COM4 baud rate is %d\n", dcb.BaudRate);
 
  hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
  hThread = CreateThread(NULL,
                         0,
                         (LPTHREAD_START_ROUTINE)ThreadProc,
                         &dwParam,
                         0,
                         &dwThreadId);
  if ((fout = fopen("c:\\Test", "a+")) == NULL)
   {
    printf("Can't create file!\n");
    return;
   }
  printf("Press Enter to exit...\n");
  do
    {
      WaitForSingleObject(hEvent, INFINITE);
      printf("%s\n", buf);
      fwrite(buf, sizeof(char), 10, fout);
    } while (!kbhit());
 
  fclose(fout);
  CloseHandle(hCom);
  return;
}
1
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 23:24  [ТС]
Это уже получше=)

Добавлено через 42 минуты
Не могу понять как написать код!!!
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,084
22.02.2013, 09:40
Цитата Сообщение от King Of Kings Посмотреть сообщение
Это уже получше=)

Добавлено через 42 минуты
Не могу понять как написать код!!!
за вас уже всё написали.

всё что вам нужно это Литература C++

Чуть не забыл, для отладки может потребоваться рабочая программа, Com Port Toolkit она позволяет передавать файл по COM порту. Эта программа мне всегда сильно помогает.
0
22.02.2013, 17:14

Не по теме:

Цитата Сообщение от XRuZzz Посмотреть сообщение
Такие частицы могут перемещаться в металическом проводе(например медном). Когда они перемещаются возникает напряжение.
это не напряжение, это ток

0
 Аватар для Kuzia domovenok
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
22.02.2013, 22:06
Цитата Сообщение от King Of Kings Посмотреть сообщение
Не могу понять как написать код!!!
что конкретно. Вот код написан, например. Что в нём непонятно?
0
22.02.2013, 22:54

Не по теме:

Цитата Сообщение от aLarman Посмотреть сообщение

Не по теме:


это не напряжение, это ток

...
я в том смысле если частицы движутся то работа по переносу заряда совершается, если нет, не совершается

0
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
19.03.2013, 17:12  [ТС]
Kuzia domovenok, Напиши пример чтения запись файла через ReadFile WriteFile(файл любой длинны)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2013, 17:12
Помогаю со студенческими работами здесь

Переход из одного интервала к другому
Прошу прощения, не знаю где должна быть подобная тема. У меня есть интервал примерно , массив цифр (каждая цифра имеет свой цвет), нужно...

Передача свойств одного компонента другому
Добрый день. Не подскажите - вопрос такой. Есть эталонный StringGrid1 с кучей свойств - кооличество столбцов, их размеры, размеры его...

Передача значения переменных одного класса другому
Всем привет. Нужно передать значения одного класса другому, при этом семантика методов класса меняться не должна, так как они на событие...

Передача значимого типа от одного List<T> другому
Добрый день, уважаемые форумчане! Прошу помочь в передаче значений от одного List&lt;T&gt; другому: дело в том, что при упаковке...

SignalR v2: передача данных от одного пользователя другому
Нужна помощь по SignalR v2, конкретно: Передача данных от js приложения одного пользователя к js приложению другого пользователю. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru