【问题标题】:Socket Programming in Java Handling with ReadLine ExceptionJava 中的套接字编程处理 ReadLine 异常
【发布时间】:2016-10-15 09:40:22
【问题描述】:

我是套接字编程的新手,并试图找出异常处理问题。我无法从 java 中的客户端向服务器发送字符串消息,因为我的代码的 readLine 部分在我运行程序时会给出异常错误。我尝试在我的服务器类中抛出异常,并且在运行服务器程序时没有出现带红色下划线的代码错误,但是当我在服务器程序之后运行客户端程序时,我的代码的 br.readLine 部分出现异常错误。可能是什么原因?

我的客户代码:

package com.soc;
import java.io.OutputStreamWriter; 
import java.io.PrintWriter;
import java.net.Socket;

public class socClient {

public static void main(String[] args) throws Exception{

    String ip = "localhost";
    int port = 9999;// 0-1023 to 65535
    Socket s = new Socket(ip,port);

    String str = "Hello World";

    OutputStreamWriter os = newOutputStreamWriter(s.getOutputStream());

    PrintWriter out = new PrintWriter(os);
    os.write(str);
    os.flush(); 
}

}

我的服务器代码:

package com.soc;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class socServer {

public static void main(String[] args) throws Exception{

    System.out.println("Server is started");
    ServerSocket ss = new ServerSocket(9999);

    System.out.println("Server is waiting for client request");
    Socket s = ss.accept();

    System.out.println("Client connected");


    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    String str = null;
    str = br.readLine();

    System.out.println("Client Data: " +str);
}

}

【问题讨论】:

    标签: java sockets exception networking readline


    【解决方案1】:

    原因是客户端从不关闭套接字,导致连接在某些操作系统上被重置。

    【讨论】:

    • 我添加了 s.close();在我的客户端代码结束时,它起作用了,谢谢!
    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    相关资源
    最近更新 更多