G
Guest
Gast
hey leute
hab mir ein klitzekleines prog geschrieben, welches von einem client eine zahl zunem server schickt und dieser die zahl wieder zum client zurückschickt. (sollte irgendwann mal ein kleines test-chatprogramm werden =))
nun hab ich allerdings den im titel genannten fehler, wenn ich den server-teil das zweite mal starten will, weil da dann der port anscheinend schon besetzt ist und nicht mehr freigegeben wurde.
dann dachte ich mir, dass es wohhl daran liegen muss, dass ich beim ServerSocket wieder ein close() machen muss, was allerdings auch keine abhilfe schuf. womöglich hab ich das close() aber auch am falschen ort platziert.
hier der code:
kann mir jemand helfen? bin fast sicher, dass es nur ne kleinigkeit ist aber ich seh den wald vor lauter bäumen nicht mehr, glaub ich =)
thanks
rox
hab mir ein klitzekleines prog geschrieben, welches von einem client eine zahl zunem server schickt und dieser die zahl wieder zum client zurückschickt. (sollte irgendwann mal ein kleines test-chatprogramm werden =))
nun hab ich allerdings den im titel genannten fehler, wenn ich den server-teil das zweite mal starten will, weil da dann der port anscheinend schon besetzt ist und nicht mehr freigegeben wurde.
dann dachte ich mir, dass es wohhl daran liegen muss, dass ich beim ServerSocket wieder ein close() machen muss, was allerdings auch keine abhilfe schuf. womöglich hab ich das close() aber auch am falschen ort platziert.
hier der code:
Code:
package chat;
import java.net.*;
import java.io.*;
public class ServSocket {
ServerSocket srvSocket = null;
public ServSocket(int port) throws IOException{
srvSocket = new ServerSocket(port);
}
public void service() throws IOException{
Socket sock = null;
while(true){
sock = new Socket();
try
{
sock = srvSocket.accept();
handleConnection (sock);
}
catch ( IOException e ) {
e.printStackTrace();
}
finally{
if(sock!= null){
try{
sock.close();
}
catch(IOException ioe){
System.out.println("Konnte Verbindung nicht schliessen: " + ioe.getMessage());
}
}
}
}
}
private void handleConnection(Socket client) throws IOException
{
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
int received = in.read();
out.write(received);
}
public static void main(String args[]) {
try{
ServSocket test = new ServSocket(15000);
test.service();
System.out.println("Vor try-Block");
try{
test.srvSocket.close();
System.out.println("srvSocket noch besetzt? " + test.srvSocket.isBound());
}
catch(IOException ioe){
System.out.println("Konnte Server-Socket nicht schliessen: " + ioe.getMessage());
}
}
catch(IOException ioe){
System.out.println("IOException: " + ioe.getMessage());
}
}
}
kann mir jemand helfen? bin fast sicher, dass es nur ne kleinigkeit ist aber ich seh den wald vor lauter bäumen nicht mehr, glaub ich =)
thanks
rox