не коннектится OBEX
От: Tsnok  
Дата: 01.11.05 06:33
Оценка:
Всем привет.
Пишу программу на д7 по обмену данными между пк и мобилкой на основе ик порта. Работаю через сокеты.
Набросал пример в котором инициализируется финсокет, создается сокет, и вытягивются данные о модели телефона.
Но вот подключться к телефону по обексу не получается.
Господа программеры помогите разобраться в пробеле.

GLOB VAR
WSAData_ : WSAdata;
Sock : TSocket;
devlist : PWINDOWS_DEVICELIST;
irADRR : SOCKADDR_IRDA;

var
buf: array[ 0..4096 ]of char;
temp: integer;
res: integer;
pbuf: PWINDOWS_DEVICELIST;
DEV_INFO_0 : _windows_IRDA_device_info;
i,j : longint;
Name : string;
time : longint; {debug var} //\\\\\\\\\\\

is_rec : IAS_SET; //irADRR : TirDASockADRR ;// = ( AF_IRDA,0,0,0,0,''#0'' );

tmp : longint;
begin
Sock:= Socket( AF_IRDA, SOCK_STREAM, 0);

temp := 4096;
res := getsockopt(Sock, SOL_IRLMP, IRLMP_ENUMDEVICES, buf, temp);
pBuf := @buf;

irADRR.irdaAddressFamily := AF_IRDA;
for i := 0 to 4 do
irADRR.irdaDeviceID[ i ] := pbuf.numDevice;
irADRR.irdaServiceName := 'IrDA:IrCOMM';
tmp := connect( Sock, TSockAddr(( @irADRR )^), sizeof( irADRR ) );

List.Items.Add( 'Count found device"s...' + IntToStr( pbuf.numDevice ) ); // List.Items.Add( PCHAR( DEV_INFO_0.irdaDeviceID ) );

if pbuf.numDevice = 0 then
List.Items.Add( 'Mibile device NOT FOUND......' )
else
for i := 0 to pbuf.numDevice — 1 do
begin
Name := '';
DEV_INFO_0 := pbuf.Device[ i ];

for j := 0 to 22 do
Name :=Name + DEV_INFO_0.irdaDeviceName[ j ];
List.Items.Add( 'Device ' + inttostr( i + 1 ) + '....' + Name );
List.Items.Add( '..............................' );
end;


ЗЫ
Благодарю за помощь!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.