Skip to content

Commit 0a782a2

Browse files
committed
AF_INET6 windows + tests
1 parent 5af197b commit 0a782a2

File tree

6 files changed

+107
-2
lines changed

6 files changed

+107
-2
lines changed

lib/stdlib/Duden/Netzwerk.ddp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
Binde "Duden/C" ein.
66
Binde "Duden/Fehlerbehandlung" ein.
7+
Binde "Duden/Laufzeit" ein.
78

89
Wir definieren eine AddressInfo öffentlich als einen Zeiger.
910

@@ -40,13 +41,17 @@ einen Socket.
4041
Der öffentliche C_int IPV4_ODER_IPV6 ist 0 als Buchstabe als C_int.
4142
[ AF_INET ]
4243
Der öffentliche C_int IPV4 ist 2 als Buchstabe als C_int.
43-
[ AF_INET6 ]
44-
Der öffentliche C_int IPV6 ist 10 als Buchstabe als C_int.
4544
[ SOCK_STREAM ]
4645
Der öffentliche C_int TCP ist 1 als Buchstabe als C_int.
4746
[ SOCK_DGRAM ]
4847
Der öffentliche C_int UDP ist 2 als Buchstabe als C_int.
4948

49+
[ AF_INET6 ]
50+
Die öffentliche Funktion AF_IPV6 gibt einen C_int zurück, macht:
51+
Gib (26, falls das Betriebssystem gleich "Windows" ist, ansonsten 10) als Buchstabe als C_int zurück.
52+
Und kann so benutzt werden:
53+
"IPV6"
54+
5055
Die öffentliche Funktion Lade_AddressInfo mit den Parametern familie, typ, name und service vom Typ C_int, C_int, Text und Text, gibt eine AddressInfo zurück,
5156
ist in "libddpstdlib.a" definiert
5257
und kann so benutzt werden:

lib/stdlib/source/DDP/network.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ static_assert(sizeof(ddpchar) == sizeof(int), "sizeof(ddpchar) == sizeof(int)");
2020

2121
static_assert(AF_UNSPEC == 0, "AF_UNSPEC == 0");
2222
static_assert(AF_INET == 2, "AF_INET == 2");
23+
#ifdef DDPOS_WINDOWS
24+
static_assert(AF_INET6 == 23, "AF_INET6 == 23");
25+
#else
2326
static_assert(AF_INET6 == 10, "AF_INET6 == 10");
27+
#endif // DDPOS_WINDOWS
2428

2529
static_assert(SOCK_STREAM == 1, "SOCK_STREAM == 1");
2630
static_assert(SOCK_DGRAM == 2, "SOCK_DGRAM == 2");
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Binde "Duden/Netzwerk" ein.
2+
Binde "Duden/Fehlerbehandlung" ein.
3+
Binde "Duden/Texte" ein.
4+
Binde "Duden/Ausgabe" ein.
5+
Binde "Duden/Zeit" ein.
6+
7+
Warte 1,5 Sekunden.
8+
9+
Schreibe ab jetzt alle Fehler.
10+
11+
Der Socket sock ist ein TCP Socket.
12+
13+
Verbinde sock mit "localhost" 8080.
14+
15+
Sende "hallo" über sock.
16+
Sende "nochmal hallo" über sock.
17+
18+
Der Text daten ist maximal 1024 Bytes aus sock.
19+
20+
Schreibe daten.
21+
22+
Schließe sock.
23+
24+
Schreibe '\n'.
25+
26+
[ UDP ]
27+
28+
Speichere einen UDP Socket in sock.
29+
Setze sock auf "localhost" 8081.
30+
31+
Die AddressInfo info ist die AddressInfo der Familie IPV4 vom Typ UDP für den Namen "localhost" und den Service "8080".
32+
33+
Sende "hallo" über sock an info.
34+
Sende "hallo udp" über sock an info.
35+
36+
Der Text nachricht ist das nächste maximal 1024 Bytes große Packet aus sock.
37+
Schreibe nachricht.
38+
Sende nachricht über sock an info.
39+
40+
Der Text nachricht2 ist das nächste maximal 1024 Bytes große Packet aus sock.
41+
Schreibe nachricht2.
42+
Sende nachricht2 über sock an info.
43+
44+
Schließe sock.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
hallonochmal hallo
2+
hallohallo udp
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
Binde "Duden/Netzwerk" ein.
2+
Binde "Duden/Fehlerbehandlung" ein.
3+
Binde "Duden/Texte" ein.
4+
Binde "Duden/Ausgabe" ein.
5+
6+
Schreibe ab jetzt alle Fehler.
7+
8+
Der Socket sock ist ein TCP Socket.
9+
10+
Setze sock auf "localhost" 8080.
11+
Lass sock auf maximal 1 Verbindung warten.
12+
13+
Der Socket verbindung ist die nächste Verbindung auf sock.
14+
Schreibe "Verbindung erhalten" auf eine Zeile.
15+
16+
Schließe sock.
17+
18+
Solange es dabei keinen Fehler gab, mache:
19+
Der Text daten ist maximal 1024 Bytes aus verbindung.
20+
Schreibe daten.
21+
Wenn daten leer ist, dann:
22+
Schreibe "Verbindung geschlossen" auf eine Zeile.
23+
Verlasse die Schleife.
24+
Sende daten über verbindung.
25+
26+
Schließe verbindung.
27+
28+
Schreibe '\n'.
29+
30+
[ UDP ]
31+
32+
Speichere einen UDP Socket in sock.
33+
Setze sock auf "localhost" 8080.
34+
35+
Die AddressInfo info ist die AddressInfo der Familie IPV4 vom Typ UDP für den Namen "localhost" und den Service "8081".
36+
37+
Der Text nachricht ist das nächste maximal 1024 Bytes große Packet aus sock.
38+
Schreibe nachricht.
39+
Sende nachricht über sock an info.
40+
41+
Der Text nachricht2 ist das nächste maximal 1024 Bytes große Packet aus sock.
42+
Schreibe nachricht2.
43+
Sende nachricht2 über sock an info.
44+
45+
Schließe verbindung.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Verbindung erhalten
2+
hallonochmal hallo
3+
Verbindung geschlossen
4+
5+
hallohallo udp

0 commit comments

Comments
 (0)