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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
#1

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

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

Мне нужно, чтоб я мог передавать файлы через com порт на другой комп'ютер через програму, но не знаю даже примерно как реализовать это.Я не прошу скинуть готовый код, всего лишь дайте мне указание на материалы(название или ссылку)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2013, 21:53     Передача файла из одного ПК к другому
Посмотрите здесь:
Передача свойства одного экземпляра класса другому экземпляру класса C++
Неправильная передача данных из одного файла в другой C++
C++ Передача .exe другому
C++ Переход из одного интервала к другому
C++ Присваивание значений одного класса другому.
C++ Передача переменной из цикла другому классу
C++ В чем заключается наследование одного класса другому?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
649 / 550 / 27
Регистрация: 15.09.2012
Сообщений: 2,497
21.02.2013, 22:08     Передача файла из одного ПК к другому #2
Открываешь 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 но я лично не смотрел эту штуку
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:12  [ТС]     Передача файла из одного ПК к другому #3
Поподробней можно?
XRuZzz
Антикодер
649 / 550 / 27
Регистрация: 15.09.2012
Сообщений: 2,497
21.02.2013, 22:19     Передача файла из одного ПК к другому #4
тут ещё поподробнее есть Асинхронная работа с COM портом.

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

Такие частицы могут перемещаться в металическом проводе(например медном). Когда они перемещаются возникает напряжение. Объяснить, что такое напряжение в проводе?
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 22:21  [ТС]     Передача файла из одного ПК к другому #5
Да я про код поподробней написал=(
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
21.02.2013, 22:30     Передача файла из одного ПК к другому #6
Достаточно знать такие 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;
}
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
21.02.2013, 23:24  [ТС]     Передача файла из одного ПК к другому #7
Это уже получше=)

Добавлено через 42 минуты
Не могу понять как написать код!!!
XRuZzz
Антикодер
649 / 550 / 27
Регистрация: 15.09.2012
Сообщений: 2,497
22.02.2013, 09:40     Передача файла из одного ПК к другому #8
Цитата Сообщение от King Of Kings Посмотреть сообщение
Это уже получше=)

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

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

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

Не по теме:

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

Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
22.02.2013, 22:06     Передача файла из одного ПК к другому #10
Цитата Сообщение от King Of Kings Посмотреть сообщение
Не могу понять как написать код!!!
что конкретно. Вот код написан, например. Что в нём непонятно?
XRuZzz
22.02.2013, 22:54
  #11

Не по теме:

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

Не по теме:


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

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2013, 17:12     Передача файла из одного ПК к другому
Еще ссылки по теме:
Перенесение элементов массива из одного места к другому C++
Проверка на принадлежность элементов одного массива к другому C++
C++ Как передать параметры конструктора одного класса другому?
C++ Полиморфизм, наследование и приведение экземпляров класса одного к другому
как присвоить значения из одного объекта другому объекту C++

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

Или воспользуйтесь поиском по форуму:
King Of Kings
7 / 7 / 3
Регистрация: 08.02.2013
Сообщений: 42
19.03.2013, 17:12  [ТС]     Передача файла из одного ПК к другому #12
Kuzia domovenok, Напиши пример чтения запись файла через ReadFile WriteFile(файл любой длинны)
Yandex
Объявления
19.03.2013, 17:12     Передача файла из одного ПК к другому
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru