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

相关推荐
sky_ph19 分钟前
JAVA-GC浅析(二)G1(Garbage First)回收器
java·后端
IDRSolutions_CN41 分钟前
PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第二部分)
java·经验分享·pdf·软件工程·团队开发
hello早上好44 分钟前
Spring不同类型的ApplicationContext的创建方式
java·后端·架构
HelloWord~2 小时前
SpringSecurity+vue通用权限系统2
java·vue.js
让我上个超影吧2 小时前
黑马点评【基于redis实现共享session登录】
java·redis
BillKu3 小时前
Java + Spring Boot + Mybatis 插入数据后,获取自增 id 的方法
java·tomcat·mybatis
全栈凯哥3 小时前
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
java·算法·leetcode·链表
chxii3 小时前
12.7Swing控件6 JList
java
全栈凯哥3 小时前
Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
java·算法·leetcode·链表
YuTaoShao3 小时前
Java八股文——集合「List篇」
java·开发语言·list