Форум: "Система";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизРабота с модемом... Найти похожие ветки
← →
Геннадий (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c