Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

Как соединить два компа при помощи модемов?   Найти похожие ветки 

 
PanModem   (2006-09-25 18:42) [0]

Как соединить два компа при помощи модемов? Как это делает Hyper Terminal?


 
PanModem   (2006-09-25 18:50) [1]

function Tmainform.SetupCOMPort: Boolean;
const RxBufferSize = 256;
 TxBufferSize = 256;
var DCB: TDCB;
 Config: string;
 CommTimeouts: TCommTimeouts;
begin
 Result := True;
 if not SetupComm(ComFile, RxBufferSize, TxBufferSize) then
   Result := False;
 if not GetCommState(ComFile, DCB) then
   Result := False;

 Config := "baud=" + IntToStr(ComSpeed) + " parity=n data=8 stop=1"; //Устанавливаем скорость
 if not BuildCommDCB(@Config[1], DCB) then
   Result := False;
 if not SetCommState(ComFile, DCB) then
   Result := False;

 with CommTimeouts do
   begin
     ReadIntervalTimeout := 0;
     ReadTotalTimeoutMultiplier := 0;
     ReadTotalTimeoutConstant := 1000;
     WriteTotalTimeoutMultiplier := 0;
     WriteTotalTimeoutConstant := 1000;
   end;
 if not SetCommTimeouts(ComFile, CommTimeouts) then
   Result := False;
end;


Вот так я подключаюсь к момеду

procedure Tmainform.Connect;
begin
 ComString := "COM4";
 ComSpeed := 9200;

 if OpenCOMPort = true then //Открываем порт…
 begin
   mainform.Canvas.Draw(Image2.Left,Image2.Top,f1);
   if SetupCOMPort = true then //…и конфигурируем его
   begin
     mainform.Canvas.Draw(Image2.Left,Image2.Top,f2);
     Terminal.Lines.Add("Подключено к "+ComString+" на "+INtTostr(ComSpeed)+"Б\С");
   end;
 end;
 Sleep(1500); //засыпаем на полторы секунды чтобы дать время на соединение
end;
function Tmainform.OpenCOMPort: Boolean;
var DeviceName: array[0..80] of Char;
 Device: string;
begin
 Device := ComString;
 StrPCopy(DeviceName, Device);
 ComFile := CreateFile(DeviceName,
   GENERIC_READ or GENERIC_WRITE,
   0,
   nil,
   OPEN_EXISTING,
   FILE_ATTRIBUTE_NORMAL,
   0);
 if ComFile = INVALID_HANDLE_VALUE then
   begin
     Result := False;
     Status := Result;
   end
 else
   begin
     Result := True;
     Status := Result;
   end;

end;


 
PanModem   (2006-09-25 18:53) [2]

А как звонить и передавать файлы? Другого соединения нет.


 
Reindeer Moss Eater ©   (2006-09-25 20:04) [3]

Позвонить : записать в открытый порт "atd" + номер телефона + CR
Передать файл : открыть файл, прочитать в буфер, записать буфер в порт. Повторить пока файл не будет передан целиком.


 
PanModem   (2006-09-25 23:37) [4]

Спасибо, а какая команда записывает буфер в модем?


 
PanModem   (2006-09-25 23:40) [5]

И каков должен быть размер буфера


 
Reindeer Moss Eater ©   (2006-09-26 00:23) [6]

Спасибо, а какая команда записывает буфер в модем?
Нет никакого модема. Есть только открытый порт и writefile.

И каков должен быть размер буфера
Любой. Какой больше нравится.


 
PanModem   (2006-09-26 00:29) [7]

Сенькью



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
8-1145781602
Radistka Cat
2006-04-23 12:40
2007.03.04
прозрачность Image


1-1168583991
YCH.Del
2007-01-12 09:39
2007.03.04
TAdvStringGrid + TAdvGridExcelIO Форматирование ячеек с формулами


3-1165266359
DelBoy
2006-12-05 00:05
2007.03.04
Работа с БД на сервере в нете


15-1170931526
Sveta_MGDIT
2007-02-08 13:45
2007.03.04
Работа со строками.


2-1170916161
Grover
2007-02-08 09:29
2007.03.04
Помогите перевести с VB на Delphi.