JAVASE入门十五脚-网络TCP,UDP,,Lambda

TCP

java 复制代码
package Sever;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class PictureSever {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(10086);
        Socket socket=serverSocket.accept();
        InputStream inputStream=socket.getInputStream();
        FileOutputStream fileOutputStream=new FileOutputStream("fj.jpg");
        int temp=0;
        while ((temp=inputStream.read())!=-1){
            fileOutputStream.write(temp);
        }
        socket.shutdownInput();
        OutputStream outputStream=socket.getOutputStream();
        outputStream.write("上传成功".getBytes());
        socket.shutdownOutput();
        outputStream.close();
        fileOutputStream.close();
        inputStream.close();
        socket.close();
        serverSocket.close();

    }
}
java 复制代码
package Cilent;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class PictureCilent {
    public static void main(String[] args) throws Exception {
        FileInputStream fileInputStream=new FileInputStream("1.jpg");
        Socket socket=new Socket("127.0.0.1",10086);
        OutputStream outputStream=socket.getOutputStream();
        int temp=0;
        while((temp=fileInputStream.read())!=-1){
            outputStream.write(temp);
        }
        socket.shutdownOutput();

        InputStream inputStream=socket.getInputStream();
        byte [] bytes=new byte[1024];
        int length = inputStream.read(bytes);
        System.out.println(new String(bytes,0,length));
        socket.shutdownInput();
        outputStream.close();
        socket.close();
        fileInputStream.close();

    }
}

基于TCP的用户登录实现

java 复制代码
package Cilent;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;
import java.util.SimpleTimeZone;


public class LoginCilent {
    public static void main(String[] args) throws IOException {
            Socket socket = new Socket("127.0.0.1", 10000);
            Users users = getUser();
            OutputStream outputStream = socket.getOutputStream();
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
            objectOutputStream.writeObject(users);
            socket.shutdownOutput();
            DataInputStream dataintputStream = new DataInputStream(socket.getInputStream());
            String str = dataintputStream.readUTF();
            System.out.println(str);
            dataintputStream.close();
            objectOutputStream.close();
            outputStream.close();



                socket.close();
    }

    public static Users getUser() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.nextLine();
        System.out.println("请输入密码:");
        String password = scanner.nextLine();
        return new Users(username, password);
    }

}
java 复制代码
package Sever;

import Cilent.Users;

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

public class LoginSever {
    public static void main(String[] args) throws Exception {
            ServerSocket serverSocket=new ServerSocket(10000);
        while (true){
            Socket socket=serverSocket.accept();
            InputStream inputStream=socket.getInputStream();
            ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);
            Users users=(Users) objectInputStream.readObject();
            String str="";
            if("msb".equals(users.getUsename())&&"msb".equals(users.getPassword())){
                str="登录成功";
                System.out.println("欢迎你"+users.getUsename() );
            }else {
                str="登录失败";
            }
            socket.shutdownInput();
            DataOutputStream dataOutputStream=new DataOutputStream(socket.getOutputStream());
            dataOutputStream.writeUTF(str);
            socket.shutdownOutput();
            dataOutputStream.close();
            objectInputStream.close();
            inputStream.close();
            socket.close();
//            serverSocket.close();

        }
//        DataInputStream dataInputStream=new DataInputStream(inputStream);
//        dataInputStream.readUTF();
    }
}
java 复制代码
package Sever;

import Cilent.Users;

import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class LoginSever1 {
    public static void main(String[] args) throws Exception {
            ServerSocket serverSocket=new ServerSocket(10000);
        while (true){
            Socket socket=serverSocket.accept();
            LoginThread loginThread=new LoginThread(socket);

            Thread thread=new Thread(loginThread);
            thread.start();
//            InputStream inputStream=socket.getInputStream();
//            ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);
//            Users users=(Users) objectInputStream.readObject();
//            String str="";
//            if("msb".equals(users.getUsename())&&"msb".equals(users.getPassword())){
//                str="登录成功";
//                System.out.println("欢迎你"+users.getUsename() );
//            }else {
//                str="登录失败";
//            }
//            socket.shutdownInput();
//            DataOutputStream dataOutputStream=new DataOutputStream(socket.getOutputStream());
//            dataOutputStream.writeUTF(str);
//            socket.shutdownOutput();
//            dataOutputStream.close();
//            objectInputStream.close();
//            inputStream.close();
//            socket.close();
//            serverSocket.close();

        }
//        DataInputStream dataInputStream=new DataInputStream(inputStream);
//        dataInputStream.readUTF();
    }
}
java 复制代码
package Sever;

import Cilent.Users;

import java.io.*;
import java.net.Socket;

public class LoginThread implements Runnable{
    private Socket socket;
    public  LoginThread(Socket socket){
        this.socket=socket;
    }
    @Override
    public void run() {
        ObjectInputStream objectInputStream=null;
        DataOutputStream dataOutputStream=null;
        try {
             objectInputStream=new ObjectInputStream(socket.getInputStream());
            Users users=(Users) objectInputStream.readObject();
            String str="";
            if("msb".equals(users.getUsename())&&"msb".equals(users.getPassword())){
                str="登录成功";
                System.out.println("恭喜你"+users.getUsename());
            }else {
                str="登录失败";
            }
            socket.shutdownInput();
           dataOutputStream=new DataOutputStream(socket.getOutputStream());
            dataOutputStream.writeUTF(str);
            socket.shutdownOutput();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }finally {
            try {
                objectInputStream.close();
                dataOutputStream.close();
                socket.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }
    }
}

udp

相关推荐
indexsunny几秒前
互联网大厂Java面试实战:Spring Boot与微服务在电商场景的应用解析
java·spring boot·redis·微服务·kafka·gradle·maven
smileNicky11 分钟前
Lombok @Data 在 IDEA 中运行报错解决方案
java·ide·intellij-idea
计算机学姐11 分钟前
基于SpringBoot的汉服租赁系统【颜色尺码套装+个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·后端·mysql·信息可视化·推荐算法
qq_54702617913 分钟前
Maven 仓库管理
java·maven
天天摸鱼的java工程师16 分钟前
线程池深度解析:核心参数 + 拒绝策略 + 动态调整实战
java·后端
mjhcsp16 分钟前
C++ KMP 算法:原理、实现与应用全解析
java·c++·算法·kmp
邵伯23 分钟前
Java源码中的排序算法(一)--Arrays.sort()
java·排序算法
阿里巴巴P8高级架构师30 分钟前
从0到1:用 Spring Boot 4 + Java 21 打造一个智能AI面试官平台
java·后端
stevenzqzq32 分钟前
trace和Get thread dump的区别
java·android studio·断点
桦说编程33 分钟前
并发编程踩坑实录:这些原则,帮你少走80%的弯路
java·后端·性能优化