UDP pro windows IOT vb.NET   zodpovězená otázka

C#, VB.NET

Prosím o pomoc

Nainstaloval jsme si na Raspberry PI Windows IOT, všechny vytvořené aplikace mi zatím fungují jen sem se dostal do problemu s komunikaci pres UDP. Kod který pouzivam bohuzel nefunguje visual stio mi ho neprelozi...

Nemate nekdo prosim nejaky napad jak toto resit?

Popripade me jeste napadlo ze bych tuto komunikaci si napsla v c ale pak zase nevim jak se nato ve VB dotazovat.

moc vsem dekuji za cokoliv

P.S.

jeste co jsmese ruzde docetl na netu by mel fungovat kod pro mobilni verze nic mene zatim jsem nenasel nic funkcniho.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jooo, už to vidím, na devatenáctém řádku v patnáctém sloupci je jedna mezera navíc...

Teď vážně, co takhle ukázat nějaký kód, který vyhazuje chybu?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to uplně jedno, vyzkoušel jsem jich již několik např. tento který mne v klasícké aplikaci bezproblému funguje ale v Windows IoT Core background App bohužel ne:


Imports System.Net.Sockets
Imports System.Threading
Imports System.Text

Public Class MainPage
    Inherits Page

Shared client As UdpClient 'Error BC30002 Type 'UdpClient' is not defined.
Shared receivePoint As IPEndPoint 'Error BC30002 Type 'IPEndPoint' is not defined.

    Dim readThread As Thread = New Thread(New ThreadStart(AddressOf WaitForPackets))
    Sub WaitForPackets()
        While True
            Dim data As Byte() = client.Receive(receivePoint)

            TextBox1.Invoke(Sub()
                                TextBox1.AppendText(Encoding.ASCII.GetString(data) & vbNewLine)
                            End Sub)

        End While
    End Sub
End Class

XAML:

<Grid Background="#1d1d1d"  Margin="0,0,0,0" Width="auto" Height="auto">


        <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Center" Height="585" Margin="10,10,10,45" Width="340">
            <Button x:Name="UDPbtn" Content="start" Background="White"  Margin="10" HorizontalAlignment="Center" Click="StartUdp_Click" Width="320"/>
            <TextBox x:Name="UDPMessage" Background="White" BorderBrush="White" Text="" Margin="10" IsReadOnly="True" Height="508"/>
        </StackPanel>


    </Grid>
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Možná to bude tím, že v UWP jsou trochu jiné namespace, například System.Net:

Tady na to poukazují, že implementace není stejná:

https://msdn.microsoft.com/en-us/library...

pak by mohlo být užitečné toto:

https://blogs.msdn.microsoft.com/dotnet/...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Super diky moc ... toto jiz prelozit jde sice jeste par much ale to us se doladí...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak preci jen jeste jeden dotaz, dle stránek jsem vyplodil toto ale pokazde se aplikace kousne a tim to konci

Sub test_sub_2()
        Dim bindAddress As IPAddress = IPAddress.Any
        Dim udpSocket As New Socket(bindAddress.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
        Dim remoteEndPoint As New IPEndPoint(New IPAddress(0), 5150) ' (IPAddress.Any, 4444)

        udpSocket.Bind(remoteEndPoint)

        test_2(udpSocket)
  
    End Sub
    Function test_2(server As Socket)
        Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
        Dim bytes(255) As Byte

        Try
            ' Blocks until send returns.
            Dim i As Integer
            ' i = server.Send(msg)
    

            ' Get reply from the server.
            i = server.Receive(bytes)
            UDPListBox.Items.Add(Encoding.UTF8.GetString(bytes))
        Catch e As SocketException
            UDPListBox.Items.Add(e.Message)
        End Try
        Return 0
    End Function
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

aplikace se kousne celkem oprávněně, už sice se Sockety nějakou dobu nepracuji, ale myslím si, že Socket čeká, až nějaký datagram přijde. Obvykle se s tím pracuje tak, že běží nekonečná smyčka, která volá tuto metodu a pokud něco přijde, předá to novému vláknu na zpracování. Něco na něj pošlete a mělo by se to rozběhnout... :-)

Jinak na webu doporučují používat třídu UdpClient, která řeší nějakou režii s tím spjatou.

btw: new IpAddress(0) - to si nejsem jistý, jestli je korektní

R.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback