С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42

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

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

Студворк — интернет-сервис помощи студентам
Мне нужно, чтоб я мог передавать файлы через 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,088
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,088
21.02.2013, 22:19
тут ещё поподробнее есть Асинхронная работа с COM портом.

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

Такие частицы могут перемещаться в металическом проводе(например медном). Когда они перемещаются возникает напряжение. Объяснить, что такое напряжение в проводе?
0
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:21  [ТС]
Да я про код поподробней написал=(
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 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,088
22.02.2013, 09:40
Цитата Сообщение от King Of Kings Посмотреть сообщение
Это уже получше=)

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

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

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

Не по теме:

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

0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru