《小白兔到大黑牛》第八篇结合TCP 知识写一个简单的聊天

public class Cient {
    public static void main(String[] args) throws IOException, IOException {
            //客户端新建Socket对象.指定主机的地址和端口.主要用到TCP核心类Socket
            Socket s=new Socket("192.168.1.122",2222);
            //通过Socket对象获得链接的输入流,主要用到Socket的方法getInputStream()得到输入流返回值为InputStream
            InputStream in=s.getInputStream();
            //通过Socket对象获得对象链接的输出流,主要用到Socket的getOutputStream()得到输出流返回值为OutputStream
            OutputStream out =s.getOutputStream();

            //用高效流进行处理.这里也是转换流将字节流转换为字符流进行读取.输出
            BufferedReader reader=new BufferedReader(new InputStreamReader(in));
            BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));

            //进行键盘录入操作
            Scanner sc =new Scanner(System.in);

            while(true){
                //输出消息给服务端
                System.out.println("客户端:");
                //创建键盘录入
                String line=sc.nextLine();
                //将键盘录入内容输出给服务端
                writer.write(line);
                //然后刷新,关闭资源
                writer.flush();
                writer.close();

                //读取服务端的消息

                String str =reader.readLine();
                System.out.println("服务器:"+str);

            }
    }
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
 * 服务器主要使用ServerSockrt
 * 接收来自客户端的消息
 * 
 * 传输消息给客户端
 * 
 * 
 *
 */
public class Server {

    public static void main(String[] args) throws IOException {
        //新建服务端ServerSocket对象,指定监听端口
        ServerSocket ss=new ServerSocket(2222);
        //接收来自客户端的消息 建立新的链接
            Socket s=ss.accept();
        //通过socket对象获得输入流
            InputStream in=s.getInputStream();
            //t通过Socket对象获得输出流
            OutputStream out=s.getOutputStream();
        //使用高效流进行处理
            BufferedReader reader=new BufferedReader(new InputStreamReader(in));
            BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));

            //键盘录入
            Scanner sc =new Scanner(System.in);

            while(true){
            //读取客户端消息
                String str=reader.readLine();
                //输出消息给服务端
                System.out.println("客户端:"+str);
                //创建键盘录入
                System.out.println("客户端:");
                String line=sc.nextLine();
                //将键盘录入内容输出给服务端
                writer.write(line);
                //然后刷新,关闭资源
                writer.flush();
                writer.newLine();
                writer.close();
            }           
    }

}

你可能感兴趣的:(学习,原创)