Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > ich versuche mittels NTP einen Zeitabgleich zu realisieren. > Leider kann ich hier den Quell-Port nicht setzen (bei NTP ist ja Ziel und Quelle gleich). > > Absetzen der Anforderung geht, kommt aber kein Paket zurück. > Wenn ich mittels Wireshark schau, dann sehe ich die Fehlermeldung "Port unreachable". > Klar, er versucht auf dem Port 49152 zu erreichen, ist aber nicht geöffnet. > Wenn ich dies im Programm mache, den kommt eben die Fehlermeldung "Port 49153 unreachable". > > Hat jemand schon erfolgreich soetwas realisiert? > > So habe ich es gemacht: > > '****************************************************************************** > 'Variable für Ethernet - NTP > Dim buf_ntp(ETH_BUF(48,0)) = {_ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,_ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,_ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,_ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,_ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,_ > 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 } As Byte > > Dim xy As Word > > > Sub main() > > Dim buf(ETH_BUF(500, 0)) As Byte > Dim rbuf(200) As Byte > Dim txt1(10) As Char > Dim info(4),plen As Word > Dim ip As ULong > > ETH_SetConnBuf(buf, 500, 0) > > ' NTP aufrufen > buf_ntp(0) = 0x1b 'Kennung Version 3 + NTP-Client => LI + VN + Mode > 'LI = 00: keine Warnung > 'VN = 011: Version-Nr. 3 > 'Mode = 011: Client > > Do While True 'Endless loop > > ETH_SendUDP(IP_ADDR(192,168,1,1), 123, buf_ntp, 48) '=> fritz.box > AbsDelay(500) > xz = ETH_ListenUDP(123) > > ip = ETH_CheckReceiveBuf(info) > Msg_WriteFloat(ip) > Msg_WriteChar(13) > > If ip Then > plen=info(3) > If plen > 48 Then > plen = 48 > End If > ETH_ReceiveData(rbuf, plen) > For i = 0 To plen - 1 > Msg_WriteChar(rbuf(i)) > Next > Msg_WriteChar(13) > End If > ETH_CloseListenUDP(123) > End While > > End Sub