前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java通过Socket实现TCP编程,实现用户登录之服务器相应客户端,客户端和服务端之间的通信

Java通过Socket实现TCP编程,实现用户登录之服务器相应客户端,客户端和服务端之间的通信

作者头像
用户1289394
发布2018-10-25 10:26:37
5.5K0
发布2018-10-25 10:26:37
举报
文章被收录于专栏:Java学习网

服务器端:

  1.创建ServerSocket对象,绑定监听端口;

  2.通过accept()方法监听客户端请求;

  3.建立连接后通过输入流读取客户端发送的请求信息;

  4.通过输出流向客户端发送响应信息;

代码语言:javascript
复制
package com.wxd.socket;import java.io.*;import java.net.ServerSocket;import java.net.Socket;/**
 * 基于TCP协议的Socket通信,实现用户登录,服务端 */public class Server {    public static void main(String[] args) {        try {            //服务端            //1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
            ServerSocket serverSocket =new ServerSocket(10086);//1024-65535的某个端口            //2、调用accept()方法开始监听,等待客户端的连接
            Socket socket = serverSocket.accept();            //3、获取输入流,并读取客户端信息
            InputStream is = socket.getInputStream();
            InputStreamReader isr =new InputStreamReader(is);
            BufferedReader br =new BufferedReader(isr);
            String info =null;            while((info=br.readLine())!=null){
                System.out.println("我是服务器,客户端说:"+info);
            }
            socket.shutdownInput();//关闭输入流            //4、获取输出流,响应客户端的请求
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.write("欢迎您!");
            pw.flush();            //5、关闭资源            pw.close();
            os.close();
            br.close();
            isr.close();
            is.close();
            socket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
代码语言:javascript
复制
控制台输出:

我是服务器,客户端说:用户名:admin;密码:123

客户端:

  1.创建socket对象,指明需要连接的服务器地址和端口号;

  2.建立连接后,通过输出流向服务器端发送请求信息;

  3.通过输入流获取服务器的响应信息;

  4.关闭相关资源;

代码语言:javascript
复制
package com.wxd.socket;import java.io.*;import java.net.Socket;/**
 * 基于TCP协议的Socket通信,实现客户端 */public class Client {    public static void main(String[] args) {        try {            //客户端            //1、创建客户端Socket,指定服务器地址和端口
            Socket socket =new Socket("localhost",10086);            //2、获取输出流,向服务器端发送信息
            OutputStream os = socket.getOutputStream();//字节输出流
            PrintWriter pw =new PrintWriter(os);//将输出流包装成打印流
            pw.write("用户名:admin;密码:123");
            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 e){
            e.printStackTrace();
        }
    }
}

控制台输出:

我是客户端,服务器说:欢迎您!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档