首页 > 开发 > Java > 正文

Java Socket编程服务器响应客户端实例代码

2024-07-13 10:15:31
字体:
来源:转载
供稿:网友

通过输入流来读取客户端信息,相应的时候通过输出流来实现。

服务端类的代码:

java/225794.html">java;">import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.logging.Level;import java.util.logging.Logger;/**  *  * @author whn6325689  */public class server {	//服务器端 	public static void main(String[] args) {		try {			//1.创建一个服务器端Socket,即serverSocket,指定绑定的端口,并监听此端口。 			ServerSocket serverSocket=new ServerSocket(8888);			//2.调用serverSocket的accept()方法,等待客户端的连接 			System.out.println("==服务器即将启动,等待客户端的连接==");			Socket socket=serverSocket.accept();			//3.获取输入流用来读取客户端所发出的登录信息 			InputStream is=socket.getInputStream();			//字节输入流 			InputStreamReader isr=new InputStreamReader(is);			//将字节流转化为字符流 			//为字符流添加缓冲 			BufferedReader bufferedReader=new BufferedReader(isr);			String info=null;			//循环读取客户端提交的信息 			while((info=bufferedReader.readLine())!=null){				System.out.println("我是服务器,客户端提交的信息是:"+info);			}			socket.shutdownInput();			//4.获取输出流,响应客户端的请求 			OutputStream os= socket.getOutputStream();			PrintWriter pw=new PrintWriter(os);			//转化为打印流 			pw.write("欢迎您!");			pw.flush();			//刷新缓存 			//5.关闭相关的资源 			bufferedReader.close();			is.close();			isr.close();			socket.close();			serverSocket.close();			os.close();			pw.close();		}		catch (IOException ex) {			Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);		}	}}

客户端类的代码:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.util.logging.Level;import java.util.logging.Logger;/**  *  * @author whn6325689  */public class client {	//客户端 	public static void main(String[] args) {		try {			//1.创建客户端Socket,指定服务器地址和端口号 			Socket socket=new Socket("127.0.0.1", 8888);			//2.获取输出流,用来向服务器发送信息 			OutputStream os=socket.getOutputStream();			//字节输出流 			//转换为打印流 			PrintWriter pw=new PrintWriter(os);			pw.write("用户名:admin;密码:admin");			pw.flush();			//刷新缓存,向服务器端输出信息 			//关闭输出流 			socket.shutdownOutput();			//3.获取输入流,用来读取服务器端的响应信息 			InputStream is=socket.getInputStream();			BufferedReader br=new BufferedReader(new InputStreamReader(is));			String info=null;			while((info=br.readLine())!=null){				System.out.println("我是客户端,服务器端返回的信息是:"+info);			}			//4.关闭资源 			br.close();			is.close();			pw.close();			os.close();			socket.close();		}		catch (IOException ex) {			Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);		}	}}

先运行服务器端类,之后再运行客户端类:

服务器端类输出结果:

==服务器即将启动,等待客户端的连接== 我是服务器,客户端提交的信息是:用户名:admin;密码:admin

客户端类的输出结果:

我是客户端,服务器端返回的信息是:欢迎您!

总结

以上就是本文关于Java Socket编程服务器响应客户端实例代码的全部内容,希望对大家有所帮助.


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表