Forum » Programiranje » [Java-Applet] socket
[Java-Applet] socket
shorvat ::
Lep pozdrav,
začel sem se učiti socket programming v Javi in ne morem rešiti ene zadeve. Vedno ko kličem .accept() metodo, se izvajanje celotnega programa ustavi.
V init() metodi kličem metodo beri(), v kateri se izvede metoda .accept(), ki mi ustavi delovanje celotnega programa in čaka na to, da client pošlje podatke. Ko so podatki poslani, se program normalno dalje izvede. Kako se je mogoče temu čakanju izogniti? Je možno, da .accept() metoda deluje v ozadju?
lp, sašo
začel sem se učiti socket programming v Javi in ne morem rešiti ene zadeve. Vedno ko kličem .accept() metodo, se izvajanje celotnega programa ustavi.
V init() metodi kličem metodo beri(), v kateri se izvede metoda .accept(), ki mi ustavi delovanje celotnega programa in čaka na to, da client pošlje podatke. Ko so podatki poslani, se program normalno dalje izvede. Kako se je mogoče temu čakanju izogniti? Je možno, da .accept() metoda deluje v ozadju?
lp, sašo
l0g1t3ch ::
Seveda je mogoče.
Vsako stvar daj v svojo nit. Recmo ena nit v kateri obdeluješ vse v zvezi z povezavo in druga za vmesnik in ostale zadeve
Vsako stvar daj v svojo nit. Recmo ena nit v kateri obdeluješ vse v zvezi z povezavo in druga za vmesnik in ostale zadeve
shorvat ::
hvala, veliko mi pomeni ta odgovor. predvidevam da je nit thread. zanima me še, če je možno v enem clasu uporabiti več niti? dva dni nazaj sem se začel ubadati z javo, pa se še lovim. imam pa kar nekaj izkušenj z c++, c#, php in javascript, ampak nisem nikoli uporabljal niti.
še eno vprašanje na tem mestu. implementiral sem server in client (applet). v client (textfield) vpišeš besedo, ki se prenese na server in se tam izpiše, v clientu se izpiše isti niz z "nazaj_" predpono. zadeva deluje na mojem lokalnem računalniku (ne v lokalnem omrežju ampak samo na moji kišti). Nikakor nisem mogel prilagaditi, da bi delovalo to na lokalnem omrežju. na kišti imam inštaliran apache server. še del kode od serverja in clienta:
server:
byte[] b = new byte[4];
b[0] = new Integer(127).byteValue();
b[1] = new Integer(0).byteValue();
b[2] = new Integer(0).byteValue();
b[3] = new Integer(1).byteValue();
try {
InetAddress addr = InetAddress.getByAddress(b);
MyServerice = new ServerSocket(1516,1,addr);
}
catch (IOException e)
client:
byte[] b = new byte[4];
b[0] = new Integer(127).byteValue();
b[1] = new Integer(0).byteValue();
b[2] = new Integer(0).byteValue();
b[3] = new Integer(1).byteValue();
try
{
addr = InetAddress.getByAddress(b);
MyClient = new Socket(addr, 1516);
}
catch (IOException e)
{
na = "IO napaka";
}
to je del kode, za katero mislim, da je pomembna za to, da deluje tudi na strežniku. Zamenjal sem IP(127.0.0.1) z IPjem (192.168.1.212) moje mrežne in zagnal strežnik na moji kišti, in se probal s clientom povezati preko očetove (local network) in se strežnik in client nekako ne ujameta. Izklopil sem vse mogoče (win firewall, antivirus, v routerju sem dodal IP v port forwarding) pa nič. Help me please.
lp, sašo
še eno vprašanje na tem mestu. implementiral sem server in client (applet). v client (textfield) vpišeš besedo, ki se prenese na server in se tam izpiše, v clientu se izpiše isti niz z "nazaj_" predpono. zadeva deluje na mojem lokalnem računalniku (ne v lokalnem omrežju ampak samo na moji kišti). Nikakor nisem mogel prilagaditi, da bi delovalo to na lokalnem omrežju. na kišti imam inštaliran apache server. še del kode od serverja in clienta:
server:
byte[] b = new byte[4];
b[0] = new Integer(127).byteValue();
b[1] = new Integer(0).byteValue();
b[2] = new Integer(0).byteValue();
b[3] = new Integer(1).byteValue();
try {
InetAddress addr = InetAddress.getByAddress(b);
MyServerice = new ServerSocket(1516,1,addr);
}
catch (IOException e)
client:
byte[] b = new byte[4];
b[0] = new Integer(127).byteValue();
b[1] = new Integer(0).byteValue();
b[2] = new Integer(0).byteValue();
b[3] = new Integer(1).byteValue();
try
{
addr = InetAddress.getByAddress(b);
MyClient = new Socket(addr, 1516);
}
catch (IOException e)
{
na = "IO napaka";
}
to je del kode, za katero mislim, da je pomembna za to, da deluje tudi na strežniku. Zamenjal sem IP(127.0.0.1) z IPjem (192.168.1.212) moje mrežne in zagnal strežnik na moji kišti, in se probal s clientom povezati preko očetove (local network) in se strežnik in client nekako ne ujameta. Izklopil sem vse mogoče (win firewall, antivirus, v routerju sem dodal IP v port forwarding) pa nič. Help me please.
lp, sašo
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java] Integer ali int za ListOddelek: Programiranje | 2244 (1759) | noraguta |
» | Java skeniranje map in podmapOddelek: Programiranje | 1149 (1038) | nightrage |
» | [JAVA] branje iz datotekeOddelek: Programiranje | 2406 (2041) | Bela01 |
» | [java] Runtime.exec()Oddelek: Programiranje | 1882 (1755) | borchi |
» | Kako pošiljanje datotek v JAVI.Oddelek: Programiranje | 1834 (1705) | kopernik |