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);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40923411/article/details/83215407