Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java ja socketit

Sivun loppuun

primax [10.05.2004 19:19:22]

#

Javan socketille (java.net) voi antaa sitä luotaessa IP-osoitteen ja portin, eli:

Socket socketti = new Socket("XX.XX.XX.XX", portin_numero);

Kun tätä kokeilen syntyy kuitenkin aina IOException poikkeus, oli IP mikä tahansa.

Mistä tällaista onglmaa kannattaa lähteä ratkaisemaan?

tsuriga [10.05.2004 21:37:25]

#

API on mukava: http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html
Näyttäisi, että nuo muodostimet eivät tykkäisi ottaa IP-osoitetta ollenkaan parametrikseen Stringinä, vaan pitää ensin muodostaa InetAddress, joka ei sekään taida huolia IP-osoitetta?

EDIT: Niin tietysti pääseehän siitä try:lla ja catchilla eroon, mutta tuo Socket on varmaankin ohjelmasi toiminnan kannalta tärkeä :).

primax [10.05.2004 23:12:21]

#

Niin. Mielestäni osoitteen voi antaa konstruktorille parametrina, mutta onglema on siinä että, aina kun yrittää ottaa yhteyden esimerkiksi kaverini IP-osoitteeseen, ilmoitetaan virheeksi Connection timed out..

Mitä tämä käytännössä tarkoittaa?

Ehkä sitä että tavoiteltu IP-osoite on saavuttamattomissa? Miksi näin voisi olla? Eli miten tällaisen asian voisi korjata.. taitaa mennä pois ohjelmoinnin puolelta, kaiketi.

tsuriga [11.05.2004 01:00:29]

#

Niin tai kaverisi firewall ei päästä sinua jostain portista läpi. Ootko varma et siihe porttii voi connectaa? Ja ootko kokeillu hostilla muodostaa Sockettia?

primax [11.05.2004 13:56:53]

#

Jaa'a. Kokeiltiin myös ilman palomuureja, ettei ne ois estänyt. Kokeiltiin ensin echo-porttiin (7) siten että kaverillani oli serveri ohjelma (javaa siis myös). Sitten kokeiltiin ihan satunnaiseen porttiin (>1023).

Voisko siihen vaikuttaa jotenkin mun ja mun kaverini nettiyhteys (pääsyverkko)? Tai voiko palveluntarjoaja (opiskelija-asuntoja molemmat -> Hoasin verkko) estää porttien käytön?

primax [11.05.2004 13:59:38]

#

Niin piti vielä kysyä että mitä "Ja ootko kokeillu hostilla muodostaa Sockettia?" tarkoittaa?

tsuriga [11.05.2004 15:17:11]

#

Niin siis laittaa host-nimeä Socketin muodostimen parametriksi. Hostin saa selvitettyä vaikka PHP:n komennolla gethostbyaddr(String ip). Ja kyllä palveluntarjoaja voi blokata portteja, mutta tuskin se satunnaisia portteja blokkailee syyttä suotta kertomatta. Jos tahdot niin voin testata ohjelmaasi jos pistät vaikka mailiin.

primax [12.05.2004 16:14:06]

#

Kiitoksia, mutta sainkin sen ongelman jo hoidettua. Vika oli vain mussa :P luonnollisesti. Siinä omassa server-puolen ohjelmassa oli pieni vika. Server-client tyyppinen java oli siis kyseessä. Nyt toimii.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta