Toon posts:

[java] sockets & readers/writers

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig om een java programma te laten communiceren met een ander programma(ut2003).
Ut2003 kan dmv een low-level TCP/IP socket verbindingen maken. Alleen nu treden er wat konflicten op(wel sturen naar java programa niet ontvangen).
Nu dacht ik dat het misschien kan komen omdat ik in het java programma heb gekozen voor deze constructie.

Java:
1
2
Pout = new PrintWriter(new OutputStreamWriter(ss.getOutputStream()), true);
Pin = new BufferedReader(new InputStreamReader(ss.getInputStream()));


Ik heb in java ook een test client gemaakt en die communiceert feiloos. Dus aan m'n code kan het niet 123 liggen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

In principe zou een PrintWriter gewoon gebufferd data op moeten sturen.

Wellicht is het een idee om een packetsniffer op je java-server te installeren en dan te kijken wat er allemaal heen en weer gaat.

Aan deze code is iig niet _zomaar_ te zien dat er iets mis gaat. De kans is aanwezig dat je niet helemaal het protocol 'spreekt' dat UT2003 graag ziet :)

Verwijderd

Topicstarter
Dat is een goede aanname maar ik wilde eerst ff weten of m'n constructie niet verkeerd is.
Kijk wat ik nl denk is dat de streams te complex voor ut2003 zijn.
Dus ik wil graag een low level oplossing in java zien (of als dit al genoeg is heb ik er ook vrede mee)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 01 juni 2003 @ 20:26:
Kijk wat ik nl denk is dat de streams te complex voor ut2003 zijn.
Dus ik wil graag een low level oplossing in java zien (of als dit al genoeg is heb ik er ook vrede mee)
Een Stream van Java _is_ een lowlevel oplossing, mits je geen geavanceerde 'streams' gebruikt zoals een GzipOutputStream of ObjectOutputStream.

Als je de meest lowlevel variant wilt, dan moet je de new PrintWriter om je constructie weghalen en werken met een gewone outputstreamwriter :)

Maar meer lowlevel dan dat kan en hoeft het, lijkt me, niet. Want een socket is een socket, die binnen UT zal ook niet minder lowlevel zijn dan een 'gewone socket' (zoals die met fsockopen in C gegenereerd wordt, oid)

  • pgussow
  • Registratie: Maart 2003
  • Laatst online: 18-08-2025
Het gaat uiteindelijk alleen maar om de bytes die over het lijntje gestuurd worden. UT weet helemaal niet dat jij met streams in Java werkt. Die ziet alleen maar bytes. En die worden geinterpreteerd.. Dus zoals ACM al zei: Kijk eerst of je wel het juiste protocol praat..