Witam!
Otóż piszę prostą wielowątkową apkę klient-serwer.
Klasa serwera wygląda mniej więcej tak:
public class Serwer{
public static void main(String[] args) {
ServerSocket gniazdo=null;
Socket polaczenie=null;
int nrPolaczenia=1;
try {
gniazdo=new ServerSocket(4444);
while(true)
{
polaczenie=gniazdo.accept();
System.out.println("otwarto polaczenie nr: "+nrPolaczenia);
Thread t=new ObslugaPolaczen(polaczenie,nrPolaczenia);
t.start();
nrPolaczenia++;
}
} catch (IOException e) {
System.out.println("Nie udalo sie otworzyc portu !!!");
}
}
}
class ObslugaPolaczen extends Thread
{
Socket przychodzacy;
int numerPolaczenia;
public ObslugaPolaczen(Socket i, int nr)
{
przychodzacy=i;
numerPolaczenia=nr;
}
public void run()
{
try {
PrintWriter out =
new PrintWriter(przychodzacy.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(przychodzacy.getInputStream()));
String inputLine, outputLine;
outputLine = "dziala serwer";
out.println(outputLine);
while ((inputLine = in.readLine()) != null) {
out.println(outputLine);
if (outputLine.equals("Bye."))
break;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Wyrzuca mi jednak błąd :
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
i dotyczy to linii: while ((inputLine = in.readLine()) != null) {
.
Znalazłem na forum podobne tematy jednak dotyczyły one sytuacji kiedy gniazdo=new ServerSocket(4444);
znajdowało się w petli while(true)
, jednak u mnie znajduje się to poza whilem i nadal błąd występuje. Jakieś sugestie?