Socket 注意事项; 要关闭流; 否则报错connection reset;

来源:互联网 发布:mysql分表 编辑:程序博客网 时间:2024/06/05 15:23
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {

    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 2000);
            PrintWriter pw = new PrintWriter(socket.getOutputStream());
            // PrintStream ps = new PrintStream(socket.getOutputStream());
            String stu = "localho";
            pw.print(stu);
            pw.close();//记得要关闭流否则要报错;
            // BufferedReader br = new BuferedReader(new InputStreamReader(
            // System.in));
            // String str = null;
            // while ((str = br.readLine()) != null) {
            // ps.println(str);
            // }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}



import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) {
        try {
            ServerSocket server = new ServerSocket(2000);
            System.out.print("");
            while (true) {
                Socket socket = server.accept();

                System.out.println("接受到 来自"
                        + socket.getInetAddress().getHostAddress() + "的请求");

                ServerThread thread = new ServerThread(socket);

                thread.start();

            }

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;

public class ServerThread extends Thread {

    private Socket socket = null;

    public ServerThread(Socket socket) {

        this.socket = socket;
    }

    @Override
    public void run() {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(socket
                    .getInputStream()));
            String str = null;
            while ((str = br.readLine()) != null) {

                System.out.println("服务线程收到来自客户端的消息" + str);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}


原创粉丝点击