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

相关推荐
wolfengi22 分钟前
Idea Code Templates配置
java·ide·intellij-idea
Arenaschi25 分钟前
运用fmpeg写一个背英文单词的demo带翻译
java·笔记·tcp/ip·其他·eclipse·maven
一只蒟蒻ovo36 分钟前
操作系统导论——第26章 并发:介绍
java·开发语言
老华带你飞1 小时前
音乐网站|基于SprinBoot+vue的音乐网站(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·音乐网站
熊文豪1 小时前
Java+Selenium+快代理实现高效爬虫
java·爬虫·selenium·隧道代理·快代理
purrrew2 小时前
【Java ee 初阶】多线程(8)
java·java-ee
TPBoreas5 小时前
Jenkins 改完端口号启动不起来了
java·开发语言
金斗潼关5 小时前
SpringCloud GateWay网关
java·spring cloud·gateway
秋名RG6 小时前
深入解析建造者模式(Builder Pattern)——以Java实现复杂对象构建的艺术
java·开发语言·建造者模式
eternal__day6 小时前
Spring Boot 实现验证码生成与校验:从零开始构建安全登录系统
java·spring boot·后端·安全·java-ee·学习方法