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

Вниз

Работа с модемом...   Найти похожие ветки 

 
Геннадий   (2002-08-17 22:29) [0]

Я посылаю модему АТ-команду на дозвон. Он звонит. Ему отвечает другой модем и они сами, без моего участия устанавливают связь между собой, так? А что бы можно было использовать стандартные компоненты для сетевой работы, входящие в поставку Делфи, этого достаточно? Или надо дать знать операционке, что есть связь с другим компом? Звоню через WriteLn(F, "AT D P 999999");

И как в этом случае узнать свой и его IP-адрес? Ведь для обмена файлами/строками нужно указать свойства Host...


 
Mozart_mcs   (2002-08-19 01:55) [1]

При соединении двух компов по модему в w98 IP - стандартный:
у сервера: 192.168.55.1
у клиента: 192.168.55.2


 
ППавел   (2002-08-19 05:58) [2]

Свой IP можно узнать таким образом:
Uses Winsock;

function MyIP : string;

type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
ph : PHostEnt;
ptr : PaPInAddr;
Buffer : array [0..63] of char;
i : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := "";
GetHostName(Buffer, SizeOf(Buffer));
ph :=GetHostByName(buffer);
if ph = nil then
begin
Exit;
end;
ptr := PaPInAddr(Ph^.h_addr_list);
I := 0;
while ptr^[I] <> nil do
begin
result:=StrPas(inet_ntoa(ptr^[I]^));
Inc(I);
end;
WSACleanup;
end;


 
Reindeer Moss Eater   (2002-08-19 08:52) [3]

>Геннадий
При таком способе соединения модемов никаких транспортных протоколов к нему (соединению) не привязывается. Соответственно никаких дополнительных IP адресов не появляется. Все что можно делать в этом случае - это писать в порт и читать из него. И ничего более.


 
ППавел   (2002-08-19 10:52) [4]

Определить свой IP можно так:

Uses Winsock;

function MyIP : string;

type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := "";
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then
begin
Exit;
end;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do
begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;


 
ППавел   (2002-08-19 10:55) [5]

Извеняюсь за повтор


 
Роман Василенко ©   (2002-08-19 14:24) [6]

Э, надобно использовать RAS-API, и стандартные компоненты.

Вот ссылочка, я уже писал об этом.

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1028828918&n=2

Второй раз писать лень.




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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
1-78484
ligor
2002-10-13 13:27
2002.10.24
Показать форму после появления основной формы программы


3-78294
sdram
2002-10-03 15:38
2002.10.24
Помогите выполнить Refresh


3-78214
lak_b
2002-10-04 14:49
2002.10.24
:)


8-78548
пена
2002-06-27 14:17
2002.10.24
Image без миганий


4-78720
Gulliver
2002-09-11 12:54
2002.10.24
Как отловить блокировку и разблокировку экрана