java实现一个基于Console的聊天程序(1对1)

package myqq;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

//服务器端
public class MyqqServer {

	public static void main(String[] args) throws Exception {
		try {
			System.out.println("友情提示:------------------ 请输入e来离开qq");
			ServerSocket serverSocket = new ServerSocket(4856);
			while (true) {

				Socket accept = serverSocket.accept();
				InputStream is = accept.getInputStream();

				time2();
				byte[] data = new byte[1024];
				int len = 0;
				while ((len = is.read(data)) != -1) {
					System.out.println(new String(data, 0, len));
				}

				time1();
				Scanner sc = new Scanner(System.in);
				String str = sc.nextLine();
				char flag = str.charAt(0);
				if (flag == 'e') {
					System.out.println("感谢您的使用 mua 再见!");
					Thread.currentThread().stop();
				}
				OutputStream os = accept.getOutputStream();
				os.write(str.getBytes());
				accept.shutdownOutput();
				is.close();
				os.close();
				accept.close();
			}
		} catch (Exception e) {
			System.out.println("对面不想和你聊天 呜呜呜");
			System.exit(0);
		}
	}

	public static void time1() {
		// 这是发送聊天的时间
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");
		System.out.println(sdf.format(date));
		System.out.println("请输入你的消息(enter):");
	}

	public static void time2() {
		// 这是接受聊天的时间
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");
		System.out.println(sdf.format(date));
	}

}

记得要先开启服务器端哦 如果你的端口号被占用了就改一个端口号

package myqq;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

//客户端
public class MyqqClient {

	public static void main(String[] args) throws Exception {
		try {
			System.out.println("友情提示:------------------ 请输入e来离开qq");
			while (true) {
				Socket client_socket = new Socket(InetAddress.getLocalHost(), 4856);

				OutputStream os = client_socket.getOutputStream();

				time1();
				Scanner sc = new Scanner(System.in);
				String str = sc.nextLine();
				char flag = str.charAt(0);
				if (flag == 'e') {
					System.out.println("感谢您的使用 mua 再见!");
					Thread.currentThread().stop();
				}
				os.write(str.getBytes());
				client_socket.shutdownOutput();

				InputStream is = client_socket.getInputStream();

				time2();
				byte[] data = new byte[1024];
				int len = 0;
				while ((len = is.read(data)) != -1) {
					System.out.println(new String(data, 0, len));
				}
				is.close();
				os.close();
				client_socket.close();
				Thread.sleep(200);
			}
		} catch (Exception e) {
			System.out.println("对面不想和你聊天 呜呜呜");
			System.exit(0);
		}
	}

	public static void time1() {
		// 这是发送聊天的时间
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");
		System.out.println(sdf.format(date));
		System.out.println("请输入你的消息(enter):");
	}

	public static void time2() {
		// 这是接受聊天的时间
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");
		System.out.println(sdf.format(date));
	}

}

如果你不是本地通讯的话就把ip地址改成对方电脑的ip地址哦

客户端效果实图:

 服务端效果图:

 以后要经常写博客了  让自己的五姑凉不在寂寞!嘿嘿

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值