第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Java中使用Socket实现服务器端和客户端通讯

Java中使用Socket实现服务器端和客户端通讯

时间:2018-08-26 07:48:51

相关推荐

Java中使用Socket实现服务器端和客户端通讯

创建服务器端serverSocket

1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.io.InputStreamReader; 5 import java.io.OutputStream; 6 import java.io.PrintWriter; 7 import .ServerSocket; 8 import .Socket; 9 10 /**11 * 服务端12 * @author Administrator13 *14 */15 public class Server {16 17public static void main(String[] args) throws IOException {18 //创建一个服务器端socket,指定绑定的端口号,并监听此端口19 ServerSocket serverSocket = new ServerSocket(8888);20 //调用accept()方法开始监听,等待客户端的连接21 System.out.println("**********服务器即将启动,等待客户端的连接*************");22 Socket socket = serverSocket.accept();23 //获取输入流,并读取客户端信息24 InputStream inp = socket.getInputStream();25 //把字节流转换成字符流26 InputStreamReader isr = new InputStreamReader(inp);27 //为字符流增加缓冲区28 BufferedReader bfr = new BufferedReader(isr);29 String info = null;30 while((info=bfr.readLine())!=null){//循环读取数据31 System.out.println("我是服务器,客户端说:"+info);32 }33 socket.shutdownInput();//关闭输入流34 //向客户端传递的信息35 OutputStream ots = socket.getOutputStream();36 PrintWriter pw = new PrintWriter(ots);37 pw.write("欢迎登陆");38 pw.flush();39 40 //关闭资源41 pw.close();42 ots.close();43 bfr.close();44 isr.close();45 inp.close();46 socket.close();47 serverSocket.close();48 49}5051 }

创建客户端socket

1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.io.InputStreamReader; 5 import java.io.OutputStream; 6 import java.io.PrintWriter; 7 import .Socket; 8 import .UnknownHostException; 9 10 /**11 * 客户端12 * @author Administrator13 *14 */15 public class Client {16 17public static void main(String[] args) {18 try {19 //创建一个客户端socket20 Socket socket = new Socket("localhost",8888);21 //向服务器端传递信息22 OutputStream ots = socket.getOutputStream();23 PrintWriter pw = new PrintWriter(ots);24 pw.write("用户名:admin;密码:123");25 pw.flush();26 //关闭输出流27 socket.shutdownOutput();28 //获取服务器端传递的数据29 InputStream is = socket.getInputStream();30 InputStreamReader isr = new InputStreamReader(is);31 BufferedReader br = new BufferedReader(isr);32 String info = null;33 while((info=br.readLine())!=null){34 System.out.println("我是客户端,服务器说:"+info);35 }36 //关闭资源37 br.close();38 isr.close();39 is.close();40 pw.close();41 ots.close();42 socket.close();43 } catch (UnknownHostException e) {44 e.printStackTrace();45 } catch (IOException e) {46 e.printStackTrace();47 }48}4950 }

先启动服务器端,再启动客户端

服务器端打印结果为

**********服务器即将启动,等待客户端的连接*************我是服务器,客户端说:用户名:admin;密码:123

客户端打印结果

我是客户端,服务器说:欢迎登陆

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。