Scoket通讯Demo

来源:互联网 发布:淘宝十大创意网店 编辑:程序博客网 时间:2024/06/07 13:52

MyServer.java

package socketDemo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class MyServer {    public static void main(String[] args) throws IOException {        // 1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口        ServerSocket server = new ServerSocket(5678);        // 2、调用accept()方法开始监听,等待客户端的连接        Socket socket = server.accept();        // 3、获取输入流,并读取客户端信息        InputStream is = socket.getInputStream();        InputStreamReader isr = new InputStreamReader(is);        BufferedReader in = new BufferedReader(isr);        //4、获取输出流,响应客户端的请求        PrintWriter out = new PrintWriter(socket.getOutputStream());        while (true) {            String str = in.readLine();            System.out.println(str);            out.println("has receive....");            out.flush();            if (str.equals("end"))                break;        }        socket.close();    }}

MyClient.java

package socketDemo;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.Socket;public class MyClient {    static Socket socket;    public static void main(String[] args) throws Exception {        // 客户端        // 1、创建客户端Socket,指定服务器地址和端口,InetAddress.getLocalHost()写成"127.0.0.1"端口号也可以        socket = new Socket(InetAddress.getLocalHost(), 5678);        // 2,获取输入流,并读取服务器端的响应信息        BufferedReader in = new BufferedReader(new InputStreamReader(                socket.getInputStream()));        // 3、获取输出流,向服务器端发送信息        PrintWriter out = new PrintWriter(socket.getOutputStream());        //System.in 等同于 socket.getInputStream();        BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));        while (true) {            //读取服务端返回的信息            String str = wt.readLine();            out.println(str);            out.flush();            if (str.equals("end")) {                break;            }            System.out.println(in.readLine());        }        socket.close();    }}