AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Bluetooth Server Win32 API
Thema durchsuchen
Ansicht
Themen-Optionen

Bluetooth Server Win32 API

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

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

AW: Bluetooth Server Win32 API

  Alt 13. Sep 2010, 09:41
So ich hab jetzt mal wieder ein bisschen in der Bluetooth API geschaut und ich denke der Socket Ansatz ist der richtige. Das Androidprogramm in Java benutzt auch einen Socket, also müsste das dann ja so hinhauen. Läuft dann über RFComm.

Hab mal jetzt ein bisschen was aus der API zusammen kopiert und halbwegs nach Delphi portiert. Können noch Fehler drin sein oder Pseudocode enthalten sein. Hab jetzt auch gerade keine Möglichkeit das zu testen, weil ich auf Arbeit bin. Aber vielleicht können ja die Socket Experten mal nen Blick drüber werfen.

Delphi-Quellcode:
var
  wsaD: TWsaData;
  iResult: integer;
  ListenSocket: TSocket;
  name: SOCKADDR_BTH;

begin

//----------------------
// Initialize Winsock

  iResult := WSAStartup(WINSOCK_VERSION, @wsaD);
  if (iResult <> NO_ERROR)
    ShowMessage('Error at WSAStartup()');

//----------------------
// Create a SOCKET for listening for
// incoming connection requests.

  // Parameters for Bluetooth Socket
  ListenSocket := socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
  if (ListenSocket = INVALID_SOCKET) then
  begin
    ShowMessage('Error at socket(): ' + WSAGetLastError());
    WSACleanup();
    exit;
  end;

//----------------------
// The sockaddr_in structure specifies the address family,
// IP address, and port for the socket that is being bound.

  name.addressFamily := AF_BTH;
  name.btAddr := 0;
  name.serviceClassId := NULL_GUID;
  name.port := BT_PORT_ANY;


  if (bind(ListenSocket, TSockAddr(@name), sizeof(name)) = SOCKET_ERROR) then
  begin
    ShowMessage('bind() failed.');
    closesocket(ListenSocket);
    exit;
  end;

//----------------------
// Listen for incoming connection requests
// on the created socket

  if (listen(ListenSocket, SOMAXCONN) = SOCKET_ERROR) then
    ShowMessage('Error listening on socket.');

  ShowMessage('Listening on socket...');
  WSACleanup();
  exit;

end;
Michael N.
Brainstalker
  Mit Zitat antworten Zitat
 


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 11:05 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