Toon posts:

[VB.NET] UDP Pakketjes onderscheppen *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zoek een manier om met VB .NET een UDP pakketje te ontvangen waarvan de DESTINATION PORT iedere keer veranderd. (het destination ip address blijft gewoon hetzelfde)

Het lukt wel om een pakketje op een bepaalde poort te ontvangen met behulp van de UDPClient en de IPendPoint klassen, maar aangezien iedere keer als het apparaatje gereset wordt de destination port veranderd is dit niet handig.

Misschien iemand een id hoe te achterhalen valt naar welke poort het apparaat toe gaat zenden? (de poort is niet vast te zetten in het apparaat zelf).

Alvast bedankt :(

  • Denhomer
  • Registratie: Augustus 2000
  • Laatst online: 12-10-2025

Denhomer

Doh !

Over welk apparaat spreken we hier ?

Verwijderd

Topicstarter
gewoon een terminal die wanneer er op een knoppie wordt gedrukt b.v. 1, een karater stuurt naar een door UTP verbonden netwerk met behulp van UDP packets. Aan het apparaat zelf is niets in te stellen, en het apparaat is ook niet bekend/verkrijgbaar ofzo (speciaal gebouwd)

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Kijk eens naar: http://winpcap.polito.it/ - hiermee zou je e.e.a. moeten kunnen bewerkstelligen.

Je geeft overigens aan dat het speciaal gebouwd is voor jullie - is het dan niet bijzonder onhandig om op een willekeurige poort te gaan zenden?

Verwijderd

Topicstarter
ja, dit is zeker onhandig, maar niet vantevoren voorzien...... we zijn ook al aan het bellen geweest met de leverancier of het niet anders kan :S

bedankt voor de link .. kga der morgen es even mee bezig!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20-08 00:10
Voor Visual Basic schijnt [url=PacketX]http://www.beesync.com/products.html[/url], een ActiveX wrapper om winpcap, handig te zijn.

Overigens zou ik gewoon eisen dat de maker op een degelijke manier met je netwerk omgaat en gewoon alle pakketjes netjes op een in te stellen of duidelijk van te voren afgesproken port(range) aflevert. Wat als die UDP packets opeens naar poorten gaan die al ergens anders voor gebruikt worden, door Windows bijvoorbeeld? Voor dit soort eigenzinnig gepruts betaal je toch niet?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Soultaker schreef op 23 September 2003 @ 01:01:
Overigens zou ik gewoon eisen dat de maker op een degelijke manier met je netwerk omgaat en gewoon alle pakketjes netjes op een in te stellen of duidelijk van te voren afgesproken port(range) aflevert. Wat als die UDP packets opeens naar poorten gaan die al ergens anders voor gebruikt worden, door Windows bijvoorbeeld? Voor dit soort eigenzinnig gepruts betaal je toch niet?
Amen _/-\o_

Als ik dit met mijn bedrijf zou opleveren zouden we er echt van geen enkele klant centen voor vangen hoor. Je mag toch op z'n minst een normaal functionerend produkt verwachten als je dik betaalt, oftewel met een duidelijk gespecificeerd communicateprotocol.

Professionele website nodig?


  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 14-08 11:19

dotcode

///\00/\\

Of hij wil een reverse engineren of hij zoekt een tcpdump

modbreak: heb je het topic uberhaupt wel gelezen voor je dit typte? :?

[ Voor 49% gewijzigd door curry684 op 23-09-2003 09:34 ]


Verwijderd

Topicstarter
Hij stuurt het ook wel binnen een bepaalde range (1024 en 5000 als ik me niet vergis). Maar dan nog is het niet handig.... :(

Verwijderd

Topicstarter
Vraagje:

Ik ben erachter gekomen dat de terminal een pakketje stuur naar de poort waar de server het vandaan gestuurd heeft. (ik stuur een pakket van x naar 10000), en de terminal replied op poort x. Hoe zet ik met vb.net poort x vast? (poort x is dus de poort waarvandaan gezonden word).

alvast bedankt,

jaap

Verwijderd

Topicstarter
Ik weet nu hoe ik van een bepaalde poort moet zenden, maar ik kan niet op diezelfde poort pakketjes ontvangen in 1 programma!? Op het moment dat ik het programma sluit en een ander programma start die op die poort luister, ontvang ik de pakketjes prima.

Iemand een id hoe ik dit voor elkaar kan krijgen!?

groeten jaap

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je gewoon zo zou doen zou het gewoon moeten werken.
C#:
1
2
3
4
5
6
7
UdpClient udpClient = new UdpClient();
udpClient.Connect("deviceAdress", portNumber);
Byte[] sendBytes;
//vul je bytes
udpClient.Send(sendBytes, sendBytes.Length);
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, portNumber);
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);

Probeer je mischien nog een udpClient op dezelfde poort te binden zonder dat je de andere gesloten hebt? Als je je programma afsluit gebeurt dit namelijk waarschijnlijk automatisch en daarom kan je als je een ander programma opstart wel luisteren op die port.

[ Voor 5% gewijzigd door Woy op 09-10-2003 10:52 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
hoe close ik een udpclient dan?

Verwijderd

Topicstarter
laat maar, al gevonde THNX!

Verwijderd

Topicstarter
Volgende vraag:

stukje script

Public Shared Function UDP_Listen(ByVal Port As Integer) As Boolean
Try
UDP_Server_Port = Port
UDP_Server = New UdpClient(Port)
thdUdp = New Thread(AddressOf GetUDPData)
thdUdp.Start()
Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
End Try

End Function


Public Shared Sub UDP_Send(ByVal Host As String, ByVal Port As Integer, ByVal Data As String)
Try

UDP_Client.Connect(Host, Port)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(Data)
UDP_Client.Send(sendBytes, sendBytes.Length)
UDP_Client.Close()
UDP_Listen(1150)

Catch e As Exception
RaiseEvent Sock_Error(e.ToString)
End Try

End Sub


Probleem: De eerste keer dat ik iets zend gaat het goed. Maar wil ik nu opnieuw iets zenden terwijl ik luister op poort 1150, dan verstuurt hij niets. Iemand een idtje?
Pagina: 1