Momentan bin ich dabei herauszufinden, was mein Problem mit WiFi direkt in einer UWP App auf Windows 10 IoT Core ist. Das Ziel besteht darin, einen StreamSocketListener eingehende Verbindungen von WiFi-direkt annehmen zu lassen. Dies funktioniert gut für die erste Verbindung, die ich mache, die zweite Anfrage an den StreamSocketListener zerstört die WiFi-Direkt-Sitzung und trennt die Verbindung. Als Randnotiz muss ich die alte WiFi-Direct-Implementierung mit SSID und Passphrase verwenden. Hier ist ein BeispielcodeUWP WiFi-Direct trennt die Verbindung nach dem zweiten eingehenden StreamSocketListener Verbindung
WiFi Direkt Verlag
WiFiDirectAdvertisementPublisher _publisher = new WiFiDirectAdvertisementPublisher();
_publisher.StatusChanged += OnStatusChanged;
WiFiDirectConnectionListener _listener = new WiFiDirectConnectionListener();
try
{
_listener.ConnectionRequested += OnConnectionRequested;
}
catch
{
return;
}
_publisher.Advertisement.ListenStateDiscoverability = WiFiDirectAdvertisementListenStateDiscoverability.Normal;
_publisher.Advertisement.IsAutonomousGroupOwnerEnabled = true;
_publisher.Advertisement.LegacySettings.IsEnabled = true;
PasswordCredential creds = new PasswordCredential();
creds.Password = passphrase;
_publisher.Advertisement.LegacySettings.Passphrase = creds;
_publisher.Advertisement.LegacySettings.Ssid = ssid;
_publisher.Start();
if (_publisher.Status == WiFiDirectAdvertisementPublisherStatus.Started)
{
// OK
}
else
{
// Error
}
OnConnectionRequested Eventhandler
WiFiDirectConnectionRequest connectionRequest = connectionEventArgs.GetConnectionRequest();
WiFiDirectDevice wfdDevice = null;
try
{
wfdDevice = await WiFiDirectDevice.FromIdAsync(connectionRequest.DeviceInformation.Id);
}
catch
{
//
}
wfdDevice.ConnectionStatusChanged += OnConnectionStatusChanged;
listEndpointPairs = wfdDevice.GetConnectionEndpointPairs();
StreamSocketListener
_listener = new StreamSocketListener();
await _listener.BindEndpointAsync(listEndpointPairs[0].LocalHostName, "80");
listener.ConnectionReceived += (sender, args) => ConnectionReceivedHandler(args);
Wie ich schon sagte, es funktioniert gut, aber ich kann nicht senden eine zweite Anfrage an den StreamSocketListener, wenn ich es tue, die WiFi-Direktverbindung wird getrennt. Vermische ich etwas oder mache einen Fehler?
Vielen Dank im Rat
Was ist Ihr Windows-iot-Kerngerät? –
A raspberrypi 3 mit dem neuesten Build von Windows 10 iot core. – andy
Verwenden Sie Onboard-WLAN oder externen WLAN-Adapter? –