मैंने नीचे एक सरल सर्वर और क्लाइंट उदाहरण लिखा था।सॉकेट बंद अपवाद
ग्राहक:
- खुला एक कनेक्शन
- outputstream जाओ, धारा है और उसे बंद उत्पादन धारा
प्राप्त InputStream और स्ट्रीम से पढ़ने का लिखें।
public class DateClient { public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException { Socket sock = new Socket("127.0.0.1", 6013); OutputStream outputStream = sock.getOutputStream(); InputStream inputStream = sock.getInputStream(); System.out.println("" + outputStream + "-" + inputStream); PrintWriter printWriter = new PrintWriter(outputStream, true); printWriter.println("Hi Server"); outputStream.close(); System.out.println(sock.isConnected()); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream)); String line; while ((line = bufferedReader.readLine()) != null) { // Exception System.out.println(line); } } }
क्लाइंट में सॉकेट बंद अपवाद नीचे हो रही है: इस बिंदु
public class DateServer { public static void main(String[] args) throws InterruptedException { ServerSocket serverSocket = null; Socket client = null; try { serverSocket = new ServerSocket(6013); while (true) { client = serverSocket.accept(); OutputStream outputStream = client.getOutputStream(); InputStream inputStream = client.getInputStream(); System.out.println("" + outputStream + "-" + inputStream); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream)); String line = null; while ((line = bufferedReader.readLine()) != null) { System.out .println("Message recieved from client ::" + line); } PrintWriter printWriter = new PrintWriter(outputStream, true); printWriter.println(new java.util.Date().toString()); client.close(); } } catch (IOException exception) { exception.printStackTrace(); System.err.println(exception); } } }
क्लाइंट पर अपवाद हो रही है। क्या आप कृपया मुझे बता सकते हैं कि कारण क्या होगा।
Exception in thread "main" java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:146)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:282)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:324)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:153)
at java.io.BufferedReader.readLine(BufferedReader.java:316)
at java.io.BufferedReader.readLine(BufferedReader.java:379)
at edu.iub.cs.httpserver.DateClient.main(DateClient.java:32)
लेकिन 'println (sock.isConnected());' सच – Abhilash
@Abhilash अप्रासंगिक प्रिंट कर रहा है। 'कनेक्ट किया गया है() 'आपको बताता है कि आपने कभी' सॉकेट 'से कनेक्ट किया है *** *** नहीं *** क्या यह अब जुड़ा हुआ है या नहीं। ('कनेक्टेड()' और 'isclosed()' विधियां * सॉकेट की स्थिति के बारे में हैं, * कनेक्शन की स्थिति नहीं।) – EJP