java网络基础之服务端与客户端

服务端与客户端无限互发消息,输入指令退出程序

 

服务端:

package com.rj.bd.zy;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

/**
 * @desc 服务端
 * @author ws
 * @time 2018-10-17
 */
public class Server {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8848);
		System.out.println("服务端已启动,等等客户端连接:");
		Socket serverSocket = server.accept();// 允许客户接入
		System.out.println("服务端:连接成功!");

		//创建对象和流和变量
		Scanner cin = new Scanner(System.in);
		String getInfo;
		String sendInfo;
		// 接受客户端发送过来的消息
		InputStream inputStream = serverSocket.getInputStream();// 获取输入流对象
		InputStreamReader inputStreamReader = new InputStreamReader(inputStream);// 将输入流转换成输入流读取对象
		BufferedReader reader = new BufferedReader(inputStreamReader);// 缓存读取对象
		// 向客户端发送消息
		OutputStream outPutStream = serverSocket.getOutputStream();// 将数据转换成输出流
		PrintStream out = new PrintStream(outPutStream, true, "UTF-8");// 将输出流转为输出对象

		String end = "no";//定义结束字符串
		
		while (true) {
			// 接收
			getInfo = reader.readLine();
			if (getInfo.equals(end)) {
				System.out.println("服务端程序结束!");
				System.exit(0);
			}
			System.out.println("获取从客户端传递过来的信息:" + getInfo);

			// 发送
			System.out.println();
			System.out.println("服务端请输入信息:");
			sendInfo = cin.nextLine();
			out.println(sendInfo);// 向客户端发送输入的信息
			if (sendInfo.equals(end)) {
				System.out.println("服务端程序结束");
				System.exit(0);
			}
		}
	}

}

 

客户端:

package com.rj.bd.zy;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

/**
 * @desc 客户端
 * @author ws
 * @time 2018-10-17
 */
public class Client {
	public static void main(String[] args) throws UnknownHostException,
			IOException {
		Socket socket = new Socket("localhost", 8848);
		System.out.println("客户端开始连接:");
		
		//创建对象和流和变量
		Scanner cin = new Scanner(System.in);
		String sendInfo;
		String getInfo;
		OutputStream outPutStream = socket.getOutputStream();// 将数据转换成输出流
		PrintStream out = new PrintStream(outPutStream, true, "UTF-8");// 将输出流转为输出对象
		InputStream inputStream = socket.getInputStream();// 获取输入流对象
		InputStreamReader inputStreamReader = new InputStreamReader(inputStream);// 将输入流转换成输入流读取对象
		BufferedReader reader = new BufferedReader(inputStreamReader);// 缓存读取对象

		String end = "no";//定义结束字符串
		
		while (true) {
			System.out.println();
			// 发送
			System.out.println("客户端请输入信息:");
			sendInfo = cin.nextLine();
			out.println(sendInfo);// 向服务端发送输入的信息
			if (sendInfo.equals(end)) {
				System.out.println("客户端程序结束");
				System.exit(0);
			}

			// 接收
			getInfo = reader.readLine();
			if (getInfo.equals(end)) {
				System.out.println("客户端程序结束");
				System.exit(0);
			}
			System.out.println("获取从服务端传递过来的信息:" + getInfo);
		}
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值