简单的Java服务器和客户端的通信

系列文章:
ESP8266的AP模式与STA模式简单测试
简单的Java服务器和客户端的通信
STM32 ESP8266和Java服务器透传模式下的双向通信
jsp向servlet传输数据
Servlet向JSP传递数据以及JSP页面DIV定时局部刷新
JSP向Servlet传递数据以及与STM32、ESP8266通信过程
没啥,就简单记录下
好像只支持传输字符串,不支持传输汉字
服务器端:

package Socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerTest2 {
	public static void main(String[] args) {
		try {
			ServerSocket serverSocket=new ServerSocket(9999);
			System.out.println("服务器2已启动,等待客户端连接...\n"); 
			//等待客户端的连接
			Socket socket = serverSocket.accept();
			 System.out.println("Socket client" + socket.getRemoteSocketAddress() + "成功连接");
			//获取输入流,并且指定统一的编码格式
			BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
	
			//读取一行数据
	
			String str;
	
			//通过while循环不断读取信息,
	
			while ((str = bufferedReader.readLine())!=null){
				//输出打印
				System.out.println("客户端发来的数据为:"); 
				System.out.println(str);
			}
		}catch (IOException e) {
			e.printStackTrace();
		}
	}
}

客户端:

package Socket;

import java.io.*;

import java.net.Socket;

public class ClientTest2 {

public static void main(String[] args) {

	try {

		//初始化一个socket

		Socket socket =new Socket("127.0.0.1",9999);

		//通过socket获取字符流

		BufferedWriter bufferedWriter =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

		//通过标准输入流获取字符流

		BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(System.in,"UTF-8"));

		while (true){

				System.out.println("请向服务器发送消息:\n"); 
				String str = bufferedReader.readLine();

				bufferedWriter.write(str);

				bufferedWriter.write("\n");

				bufferedWriter.flush();

	}

}catch (IOException e) {

e.printStackTrace();
		}

}

}

运行结果:
在这里插入图片描述

发布了103 篇原创文章 · 获赞 319 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/qq_36554582/article/details/103899303