基于TCP协议的Socket编程

/**
*客户端
**/
import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class Clients {
    public static void main(String[] args) {
        Socket socket = null;
        InputStream is = null;
        OutputStream os = null;
        try {
            socket = new Socket("localhost",8800);
            is = socket.getInputStream();
            os = socket.getOutputStream();
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入用户名:");
            String loginName = sc.next();
            System.out.println("请输入密码:");
            String passWord = sc.next();
            String str = "loginName:" + loginName + "&passWord:" + passWord;
            byte[] b = str.getBytes();
            os.write(b);
            socket.shutdownOutput();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String replay = br.readLine();
            System.out.println("客户端输出:服务器回应为==>" + replay);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                is.close();
                os.close();
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

 服务端


import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;

public class Severs {
    public static void main(String[] args) {
        InputStream is = null;
        OutputStream os = null;
        Socket socket = null;
        BufferedReader br = null;
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(8800);
            System.out.println("服务器已经启动!");
            socket = serverSocket.accept();//用于接收数据
            is = socket.getInputStream();
            br = new BufferedReader(new InputStreamReader(is));
            String str = br.readLine();//将读到的内容用str接受
            System.out.println("我是服务器,客户端输入的消息为:" + str);
            socket.shutdownInput();
            HashMap<String,String> hm = new HashMap<>();
            String[] strings = str.split("&");
            for (String s:strings) {
                String[] st = s.split(":");
                hm.put(st[0], st[1]);
            }
            String replay = "登录失败!";
            if (hm.get("loginName").equals("tom") && hm.get("passWord").equals("123456")){
                replay = "登录成功!";
            }
            os = socket.getOutputStream();
            os.write(replay.getBytes());
            socket.shutdownOutput();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                os.close();
                is.close();
                br.close();
                socket.close();
                serverSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值