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

相关推荐
程柯梦想5 分钟前
Maven修改默认编码格式UTF-8
java·maven
涛ing5 分钟前
【5. C++ 变量作用域及其深入探讨】
java·linux·c语言·开发语言·c++·ubuntu·vim
字节全栈_mMD1 小时前
Flink Connector 写入 Iceberg 流程源码解析_confluent icebergsinkconnector
java·大数据·flink
小园子的小菜1 小时前
RocketMQ中的NameServer主要数据结构
java·中间件·rocketmq·java-rocketmq
平凡君2 小时前
缓存的今生今世
java·spring·缓存
纠结哥_Shrek2 小时前
Java 有很多常用的库
java·开发语言
爱是小小的癌3 小时前
Java-数据结构-优先级队列(堆)
java·前端·数据结构
2501_903238654 小时前
自定义登录页面的Spring Security实践
java·后端·spring·个人开发
飞翔的佩奇5 小时前
Java项目: 基于SpringBoot+mybatis+maven+mysql实现的图书管理系统(含源码+数据库+答辩PPT+毕业论文)
java·数据库·spring boot·mysql·spring·毕业设计·图书管理