IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 网络() -> 正文阅读

[系统运维]网络()

? ? ? 在21世纪的我们,在网络快速发展的世界,那对于我们而言,网络又是什么呢?今天我们来讲一下网络!!

计算机网络:把分布在不同地理区域的,具有独立功能的计算机通过通信线路连接起来,能有实现资源共享和信息传递。

网络编程:使用计算机语言开发软件,让软件能够通过网络进行数据交换,java语言支持网络通信

网络编程的核心问题:

1.如何精确的找到计算机的目标主机

2.找到后如何安全可靠的传输数据?

  • 协议对传输的速率
  • 代码结构(报文)
  • 出错的话进行协议
  • ip+端口(找到主机的某个程序)

?网络模型:

  • OST参与模型:7层-理想实现
  • TCP/IP模型:? ?4层-实际实现

1.传输控制协议:TCP

2.用户数据协议:UDP

与服务器建立连接(三次握手),保证网络通畅,然后再进行数据传输,断开时进行(四次握手),保证客户端,服务端都之情吧,因为要建立连接所以传输较UDP慢。

?UDP:不需要建立网络连接,将数据,源,目标封装在数据包中,进行发送,发送是否成功不知道,不建立连接,速度快,不安全

Server:

public class Server {

    public static void main(String[] args) throws IOException {
//        //建立服务  不能使用已存在的端口
//        ServerSocket serverSocket=new ServerSocket(9965);//0-65535
//        System.out.println("服务器启动了");
//        Socket socket=serverSocket.accept();//监听,有没有客户端尝试连接服务器
//        System.out.println("客户端连接成功");
//        //接收客户端发送的信息
//        InputStream in= socket.getInputStream();
//        OutputStream out =socket.getOutputStream();
//        byte[] b=new byte[100];
//        int size=in.read(b);
//        //byte数组如何转为字符串
//        String s= new String(b,0,size,"utf-8");
//        System.out.println(s);
//        //从服务器端向客户端发送信息
//        out.write("你好,客户端".getBytes("utf-8"));
        ServerSocket serverSocket=new ServerSocket(9965);//建立服务器,不能使用已被使用的端口
        System.out.println("服务器启动了");
        Socket socket= serverSocket.accept();//监听有没有客户端尝试连接服务器
        System.out.println("服务器连接成功");
        InputStream in=socket.getInputStream();//接受客户端发送的消息
        OutputStream out= socket.getOutputStream();
        byte []bytes=new byte[100];//创建一个数组
        int size=in.read(bytes);//读取数组的长度
        String s=new String(bytes,0,size,"utf-8");//将
        System.out.println(s);
        out.write("你好,客户端".getBytes("utf-8"));


    }
}

Users:

package day20.Demo1;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class Users {
    public static void main(String[] args) throws IOException {
            Socket socket=new Socket("192.168.31.110",9999);
            OutputStream out= socket.getOutputStream();
            out.write("网络女神你好".getBytes("utf-8"));
        }
        }

Receive:

package day20.Demo3;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class receive {
    public static void main(String[] args) throws IOException {
        DatagramSocket datagramSocket=new DatagramSocket(9999);
        byte[] bytes=new byte[1024];
        DatagramPacket datagramPacket=new DatagramPacket(bytes,bytes.length);
        datagramSocket.receive(datagramPacket);
        String msg=new String(datagramPacket.getData(),0,datagramPacket.getLength(),"utf-8");
        System.out.println(msg);
    }
}

Send:

package day20.Demo3;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.*;

public class send {
    public static void main(String[] args) throws IOException {
        DatagramSocket datagramSocket=new DatagramSocket();
        byte[]b="你好,客户端".getBytes("utf-8");
        DatagramPacket datagramPacket=new DatagramPacket(b,b.length,InetAddress.getByName("127.0.0.1"),9999);
        datagramSocket.send(datagramPacket);



    }
}

上面只能对话一次。那如果是在我们平时生活中的聊天呢?加上Scanner和循环就可以实现基本的聊天功能了。

package day20.Demo4;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;

public class recive {//客户端

    public static void main(String[] args) throws IOException {
        Socket socket=new Socket("192.168.31.111",9981);
        while(true){
            Scanner scanner=new Scanner(System.in);
            String s1=scanner.next();

            DataOutputStream date=new DataOutputStream(socket.getOutputStream());
            date.writeUTF(s1);

        DataInputStream dataInputStream=new DataInputStream(socket.getInputStream());
        String s=dataInputStream.readUTF();
        System.out.println("服务器说:"+s);
}}}
package day20.Demo4;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class send {//服务端

    public static void main(String[] args) throws IOException {
//        5.引入循环与Scanner,
//                实现客户端向服务器端发送消息,服务器端接收消息,
//                并在服务器端向客户端返回一条消息,并在客户端打印输出.
//                实现多次发送
       ServerSocket serverSocket=new ServerSocket(9967);
        System.out.println("服务器创建成功,客户端正在连接中,请稍等...");
       Socket socket=serverSocket.accept();
        System.out.println("客户端连接成功");

        while(true){
       DataInputStream dataInputStream=new DataInputStream(socket.getInputStream());
       String s=dataInputStream.readUTF();
        System.out.println("客户端说:"+s);
            Scanner scanner=new Scanner(System.in);
            String s1=scanner.next();
        DataOutputStream date=new DataOutputStream(socket.getOutputStream());
        date.writeUTF(s1);

    }
}}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 17:01:55  更:2022-07-17 17:02:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:49:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计