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

相关推荐
奋进的小暄1 小时前
数据结构(java)栈与队列
java·开发语言·数据结构
SnXJi_1 小时前
纷析云开源财务软件:企业财务数字化转型的灵活解决方案
java·gitee·开源·开源软件
pingzhuyan1 小时前
03(总)-docker篇 Dockerfile镜像制作(jdk,jar)与jar包制作成docker容器方式
java·docker·jar
caihuayuan42 小时前
Redis奇幻之旅(三)1.redis客户端与服务端
java·大数据·sql·spring·课程设计
匆匆整棹还3 小时前
关于tomcat乱码和idea中控制台乱码的问题
java·tomcat·intellij-idea
何似在人间5754 小时前
SpringAI+DeepSeek大模型应用开发——1 AI概述
java·人工智能·spring·springai
匹马夕阳4 小时前
Java开发中的设计模式之观察者模式详细讲解
java·观察者模式·设计模式
风铃儿~4 小时前
Java微服务注册中心深度解析:环境隔离、分级模型与Eureka/Nacos对比
java·分布式·微服务·面试
赤橙红的黄4 小时前
Spring Boot中接入DeepSeek的流式输出
java·服务器·javascript
小样vvv5 小时前
【AI】IDEA 集成 AI 工具的背景与意义
java·人工智能·intellij-idea