# Tcp Verkehr eines Applets simulieren



## aze (13. Feb 2010)

Hi.Ich hab mit Wireshark den Netzwerkverkehr eines Appletes aufgefangen.Jetzt möchte ich diesen simulieren ,also selbst in einer Applikation versenden.Wie mache ich das.Hier sind die Nachrichten.

Hier sind die Nachrichten die gesendet werden:

0000  00 13 49 11 18 0c 00 19  21 3e 7c d7 08 00 45 00   ..I..... !>|...E.
0010  00 30 f0 5f 40 00 80 06  3e b8 c0 a8 02 21 51 d1   .0._@... >....!Q.
0020  b7 15 10 b3 1f 42 22 ec  29 25 00 00 00 00 70 02   .....B". )%....p.
0030  40 00 fb 68 00 00 02 04  05 b4 01 01 04 02         @..h.... ......  

0000  00 13 49 11 18 0c 00 19  21 3e 7c d7 08 00 45 00   ..I..... !>|...E.
0010  00 28 f0 60 40 00 80 06  3e bf c0 a8 02 21 51 d1   .(.`@... >....!Q.
0020  b7 15 10 b3 1f 42 22 ec  29 26 c0 50 51 08 50 10   .....B". )&.PQ.P.
0030  44 10 12 b4 00 00                                  D.....   

0000  00 13 49 11 18 0c 00 19  21 3e 7c d7 08 00 45 00   ..I..... !>|...E.
0010  00 d1 f0 61 40 00 80 06  3e 15 c0 a8 02 21 51 d1   ...a@... >....!Q.
0020  b7 15 10 b3 1f 42 22 ec  29 26 c0 50 51 08 50 18   .....B". )&.PQ.P.
0030  44 10 bd 0a 00 00 00 01  00 00 00 01 00 00 00 07   D....... ........
0040  32 2e 36 2e 32 2e 31 00  28 68 74 74 70 3a 2f 2f   2.6.2.1. (http://
0050  77 77 77 2e 63 68 61 74  34 66 72 65 65 2e 64 65   www.chat 4free.de
0060  2f 63 68 61 74 65 69 6e  67 61 6e 67 2e 68 74 6d   /chatein gang.htm
0070  6c 00 19 68 74 74 70 3a  2f 2f 63 68 61 74 2e 63   l..http: //chat.c
0080  68 61 74 34 66 72 65 65  2e 64 65 2f 00 15 53 75   hat4free .de/..Su
0090  6e 20 4d 69 63 72 6f 73  79 73 74 65 6d 73 20 49   n Micros ystems I
00a0  6e 63 2e 00 14 68 74 74  70 3a 2f 2f 6a 61 76 61   nc...htt p://java
00b0  2e 73 75 6e 2e 63 6f 6d  2f 00 08 31 2e 36 2e 30   .sun.com /..1.6.0
00c0  5f 31 37 00 04 35 30 2e  30 00 0a 57 69 6e 64 6f   _17..50. 0..Windo
00d0  77 73 20 58 50 00 03 35  2e 31 00 03 78 38 36      ws XP..5 .1..x86 

0000  00 13 49 11 18 0c 00 19  21 3e 7c d7 08 00 45 00   ..I..... !>|...E.
0010  00 5d f0 62 40 00 80 06  3e 88 c0 a8 02 21 51 d1   .].b@... >....!Q.
0020  b7 15 10 b3 1f 42 22 ec  29 cf c0 50 51 1f 50 18   .....B". )..PQ.P.
0030  43 f9 25 6f 00 00 00 d1  00 00 00 01 2e 30 2c 02   C.%o.... .....0,.
0040  14 2a a5 c2 b9 22 56 9b  b8 0f 51 87 8f df 10 ae   .*..."V. ..Q.....
0050  e4 c6 91 6f 9d 02 14 4a  62 ef 68 65 2b da 6a 9b   ...o...J b.he+.j.
0060  26 24 35 a4 c4 24 2d 66  8b e9 bb                  &$5..$-f ...     

0000  00 13 49 11 18 0c 00 19  21 3e 7c d7 08 00 45 00   ..I..... !>|...E.
0010  00 28 f0 63 40 00 80 06  3e bc c0 a8 02 21 51 d1   .(.c@... >....!Q.
0020  b7 15 10 b3 1f 42 22 ec  2a 04 c0 50 5b 2f 50 10   .....B". *..P[/P.
0030  44 10 07 af 00 00

Ich weiss dass es dafür Klassen wie Socket, Inputstream und Outpustream gibt ,bzw auch InputstreamReader und Outputstreamwriter.

Dazu habe ich einige Fragen:

1.gibt es auch einie Möglichkeit "Strings im Hexadezimalformat" zu senden oder muss man die obigen Nachrichten in Byte konvertieren ?

2.Senden die Write Methoden von Outputstream/Outputstreamwriter ganze TCP Pakete oder nur das was in diesen Paketen als "Data" vorhanden ist.Muss ich also alles was in den obigen Nachrichten in die WriteMethoden schreiben oder nur einen Teil ?

3.Wie sieht es mit Flags aus ? In einigen der Nachrichten werden welche wie "Syn" gesetzt.Können die in Java auch gesetzt werden ?


----------



## Murray (13. Feb 2010)

Mit Wireshark zeichnest du den Netzwerktraffic auf einem sehr niedrigen Level auf. Java bietet mit den Socket eine Abstraktionsschicht, die vieles von dem, was du im Log siehst (wie z.B. die Syns oder auch die Aufteilung des Datenstroms in Pakete) vor dem Verwender verbirgt. Aus diesem Grund kannst du mit Sockets nicht byteweise das machen, was du im Log-File siehst.


----------



## aze (13. Feb 2010)

Okay.Wie sieht denn die Alternative aus ? Das ganze in C machen ?


----------



## Gast2 (14. Feb 2010)

aze hat gesagt.:


> Okay.Wie sieht denn die Alternative aus ? Das ganze in C machen ?



da hast Du das gleiche Problem ... Sockets != Netzwerk ... Du musst aus den aufgezeichneten Daten das Protokoll zwischen Applet und Server herausfiltern ... dann kannst Du den Server (oder Applet?) mit Sockets simulieren


----------



## Atze (14. Feb 2010)

musst du denn überhaupt auf die ebene runter? reicht dir das nicht, wenn du die tcp/ip geschickte den socket machen lässt und beim http ansetzt? da gibts in java ja die request / response objekte

HttpURLConnection (Java 2 Platform SE v1.4.2)


----------



## Kr0e (14. Feb 2010)

Wenn du auf diesen Level runter willst, musst du dir das Berkley Socket API anschauen. Natürlich kommst du dann nicht um C/C++ herum. Java ist für diesen Leven nicht gedacht. Ich sehe aber auch wie meine Vorredner keinen Anlass.


----------



## aze (14. Feb 2010)

@mogel:Laut Wireshark ist dasProtokoll schon TCP(siehe Anhang)

Ich frage mich wie das mit HTTPUrlConnection gehen soll.Ist es egal welche Request Methode ich dann verwende und was schreibe ich in den DataOutpustream ? Da kann man ja auch nur wieder byteweise reinschreiben.

Wäre schön wenn mir jemand das etwas ausführlicher erklären könnte

Schönen Sonntag

Aze


----------



## Atze (14. Feb 2010)

URLConnection (Java 2 Platform SE v1.4.2)

vielleicht bietet dir die übrsicht der oberklasse mehr möglichkeiten 

und klar ist dort wohl alles tcp, weil http ja auf tcp/ip aufsetzt. das regelt der socket aber schon von allein, was dich interessieren sollte wären imm http bereich die header zu setzen und in dem outputstream die daten (bytes) zu übertragen. du kannst doch jeden string in bytes verwandeln, dafür gibts ja string.getBytes().


----------



## Gast2 (14. Feb 2010)

aze hat gesagt.:


> @mogel:Laut Wireshark ist dasProtokoll schon TCP(siehe Anhang)



Du willst uns nicht verstehen ... das was Du machen willst macht keinen Sinn ... was Du mit Wireshark aufgezeichnet hast ist den nackte TCP-Stream auf Layer 4 - mit allem SYN & ACK-Paketen und weis der Geier noch was ... was Du machen willst baut aber auf Layer 7 auf ... daher nochmal ... Deine Aufzeichnungen musst Du vom TCP/IP Kram befreien und das reine Protokoll zwischen Server und Applet nachbauen

das gesamte OSI-Module findest Du auch bei Wikipedia - OSI-Modell ? Wikipedia


----------



## aze (14. Feb 2010)

mogel hat gesagt.:


> Deine Aufzeichnungen musst Du vom TCP/IP Kram befreien und das reine Protokoll zwischen Server und Applet nachbauen



Okay und wie kann ich das machen ? 

Ich glaub ich hab euch wirklich etwas mißverstanden.Sorry


----------



## FArt (15. Feb 2010)

Erste Regel: beschreibe dein eigentliches Problem, nicht das Problem eines von dir gedachten Lösungsversuchs.

Dazu auch der Link in meiner Signatur... ;-)

Vermutlich willst du das Applet testen. Dazu solltest du die Services, die die Kommunikation kapseln, mocken.


----------

