AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Bluetooth Server Win32 API

Bluetooth Server Win32 API

Ein Thema von Brainstalker · begonnen am 9. Sep 2010 · letzter Beitrag vom 17. Sep 2010
Antwort Antwort
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Bluetooth Server Win32 API

  Alt 14. Sep 2010, 07:35
Der ganze Thread hier ist zwar eher ein Selbstgespräch, aber vielleicht bringt es ja auch anderen Benutzern etwas wenn ich hier meine Gedanken und Fortschritte aufschreibe.

Ich stehe jetzt (hoffentlich) kurz vor einer funktionierenden Verbindung meines Android Handys und dem PC. Ich werde nachher zwei Dinge ausprobieren, ich habe zum einen im Internet noch ein bisschen Source zur Funktion WSASetService gefunden:
Code:
int size = sizeof(SOCKADDR_BTH);

if (0 != getsockname(s, pAddr, &size))
{
printf("%s\n", GetLastErrorMessage(GetLastError()));
}

WSAQUERYSET service;

memset(&service, 0, sizeof(service));

service.dwSize = sizeof(service);

service.lpszServiceInstanceName = "My Service";
service.lpszComment = "My comment";

GUID serviceID = OBEXFileTransferServiceClass_UUID;

service.lpServiceClassId = &serviceID;

service.dwNumberOfCsAddrs = 1;
service.dwNameSpace = NS_BTH;

CSADDR_INFO csAddr;

memset(&csAddr, 0, sizeof(csAddr));

csAddr.LocalAddr.iSockaddrLength = sizeof(SOCKADDR_BTH);
csAddr.LocalAddr.lpSockaddr = pAddr;

csAddr.iSocketType = SOCK_STREAM;
csAddr.iProtocol = BTHPROTO_RFCOMM;

service.lpcsaBuffer = &csAddr;

if (0 != WSASetService(&service, RNRSERVICE_REGISTER, 0))
{
printf("%s\n", GetLastErrorMessage(GetLastError()));
}
und zum anderen liegt es vielleicht daran, das mein Androidprogramm einfach nur eine andere GUID für den Service benutzen muss.
Code:
RFCOMM_PROTOCOL_UUID: TGUID = '{00000003-0000-1000-8000-00805F9B34FB}';
Michael N.
Brainstalker
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Bluetooth Server Win32 API

  Alt 17. Sep 2010, 15:43
Ich bin leider noch nicht viel weiter gekommen. Allerdings ist mir jetzt was aufgefallen.

In der Datei "ws2bth.h" ist die Konstante BT_PORT_ANY als -1 deklariert.
Im Struct SOCKADDR_BTH ist die Variable port als ULONG deklariert.

Es ist doch gar nicht möglich den Wert zuzuweisen oder? Der Compiler meckert ja zurecht das die untere Grenze verletzt wird.

Delphi-Quellcode:
const
  BT_PORT_ANY = -1;

var
  name: SOCKADDR_BTH;

...

name.port := BT_PORT_ANY;
Wie kann ich denn den Wert zuweisen? Scheint ein Fehler zu sein in meinem Code, denn z.Z. benutze ich 0 als Port. In der msdn steht aber man soll BT_PORT_ANY benutzen.
Michael N.
Brainstalker
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz