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

来源:互联网 发布:沉香有助于睡眠吗 知乎 编辑:程序博客网 时间:2024/04/28 10:20
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();            }               }}