当前位置: 首页 > news >正文

东莞松山湖华为小镇/青岛关键词优化seo

东莞松山湖华为小镇,青岛关键词优化seo,网站建设销售是什么,深圳做网站推广公司目录 一、 初始网络编程 二、 相关网络知识介绍 1. 网络三要素 1.1. IP 1.1.1. IPv4 1.1.2. IPv6 1.2. 端口号 1.3. 协议 1.2.1. TCP 1.2.2. UDP 三、网络编程的实现 1. UDP的网络编程实现 1.1. 发送端 1.2. 接收端 2. TCP的网络编程实现 1.1. 客户端 1.2. 服…

目录

一、 初始网络编程

二、 相关网络知识介绍

1. 网络三要素

1.1. IP

1.1.1. IPv4

1.1.2. IPv6

1.2. 端口号

1.3. 协议

1.2.1. TCP

1.2.2. UDP

三、网络编程的实现

1. UDP的网络编程实现

1.1. 发送端

1.2. 接收端

2. TCP的网络编程实现

1.1. 客户端

1.2. 服务端

1.2.1. 乱码问题

总结


前言

本文介绍最初的java网络编程

在后面会更新练习的内容,在练习的内容来更深入理解网络编程

🏠我的主页:我的主页
📚系列专栏:系列专栏

一、 初始网络编程

网络编程顾名思义,就是在网络中的发送端接收端进行通信
用到网络就先了解一下网络

二、 相关网络知识介绍

这里我会介绍,网络编程会用到的网络相关知识,更全面次的网络知识,后期会发布的😊

1. 网络三要素

1.1. IP

IP就是在广域网中唯一标识( 是的,在广域网中可以通过IP知道用的是什么设备 )
在网络中,分为

  1. 局域网
  2. 城域网
  3. 广域网

所以这里强调的是在广域网中的唯一标识

1.1.1. IPv4

特点:点分十进制
        例如: 192.168.1.1
特殊IP:127.0.0.1(表示本机IP)
可以通过以下步骤查到本机ip

  1. win + r
  2. 输入cmd

        3. 输入 ipconfig


IPv4一共有4^32个,现在是已经用完了,但是我们在网络通信中,基本上还是用的IPv4

1.1.2. IPv6

因为IPv4用完了,现在很多地方都用了IPV6,之后也会变普遍的
特点:冒分十六进制
        例如: 00-01-00-11-2E-83-2E-0E-28-C5-F8-3D-49-47
有2^128个 

1.2. 端口号

端口号:应用程序设备中的唯一标识

这就和IP对应上了,可以这样理解

  • IP 这台设备
  • 端口号 就是这台设备上的某个应用程序

端口号的取值范围:0 ~ 65535
其中,0 ~ 1023 之间的端口号用于一些知名的网络服务或应用
我们使用 1024以上的端口号即可

1.3. 协议

协议:通信双方必须遵守的约定(规则)
因为本次网络编程只会涉及两个协议:TCP、UDP

1.2.1. TCP

TCP(传输控制协议)
面向连接
特点:速度慢,没有大小限制,数据是安全的
需要通信双方确立连接
应用:下载软件,发送邮件(因为这些不能让数据丢失)

1.2.2. UDP

UDP(用户数据报协议)
是面向无连接的
特点:一次最多发送64KB,数据不安全,易丢失
应用:打视频电话(反正就是卡一下而已)
UDP是只管发,不管你有没有接收到

接下来,就围绕网络三要素以及两个网络协议来分别讲解,网路编程的实现

三、网络编程的实现

1. UDP的网络编程实现

1.1. 发送端

步骤

  1. 创建 DatagramSocket
    绑定端口
    绑定端口,就是从这个端口发送数据
    没有端口,就是从任意端口发出
    因为是发出的数据,所以不用写
  2. 打包数据 
    DatagramPacket
  3. 发送数据
  4. 释放资源

DatagramPacket包含的4个内容

//发送数据
//1. 创建DatagramSocket对象
DatagramSocket host;
try {// 绑定端口,就是从这个端口发送数据// 没有端口,就是从任意端口发出host = new DatagramSocket();
} catch (SocketException e) {throw new RuntimeException(e);
}//2. 打包数据
String str = "欢迎来到艺杯羹的博客!";
// 转成字节数组
byte[] bytestr = str.getBytes();
//获取ip(电脑)对象地址
InetAddress address = InetAddress.getByName("192.168.1.50");
// 发送的端口号
int post = 8888;
// 打包数据中包含以下四个内容
// 1. 打包的字节数据
// 2. 打包的个数
// 3. 打包的地址
// 4. 打包的端口
DatagramPacket packet = new DatagramPacket(bytestr, bytestr.length, address, post);//3. 发送数据
try {host.send(packet);
} catch (IOException e) {throw new RuntimeException(e);
}//4.释放资源
host.close();
}

1.2. 接收端

步骤

  1. 创建 DatagramSocket 
    这里要指定接收的端口
    绑定的端口一定要跟发送的端口保持一致
  2. 接收数据包
  3. 解析数据包
  4. 释放资源

public static void main(String[] args) throws SocketException {// 创建Datagramsocket对象// 注意://在接收的时候,一定要绑定端口//而且绑定的端口一定要跟发送的端口保持一致DatagramSocket receive = new DatagramSocket(8080);// 2.接收数据包// 因为是字节,所以就先弄一个字节数组来接收数据byte[] str = new byte[1024];// 创建接收的DatagramPacket包// 空号里的两个值是// 1. 存放到哪个字节数组// 2. 存放的长度DatagramPacket data = new DatagramPacket(str, str.length);try {// 接收数据receive.receive(data);} catch (IOException e) {throw new RuntimeException(e);}// 3. 解析数据包// getData()返回发送来的数据byte[] data1 = data.getData();// 返回发送端的端口号int port = data.getPort();// 返回发送端的地址InetAddress address = data.getAddress();// 返回数据的长度int len = data.getLength();System.out.println("地址和端口为:" + address + "  " + port);System.out.println("接收的数据为" + new String(data1, 0, len) +"   " + "长度为:" + len);// 4. 释放资源receive.close();}

先自己实现一遍这个代码,再往后看😊

2. TCP的网络编程实现

TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象
在开始通信之前,要保证连接已经建立
通过Socket产生的IO流来进行网络通信

1.1. 客户端

步骤

  1. 建立IP和端口的连接
    这里要提供服务端的IP和端口
  2. 获取输出流
    要通过 创建的socket的对象
    内部的getOutputStream()输出流函数
    通过write写数据
  3. 关闭socket
     
// 1.建立IP和端口的连接
Socket socket = new Socket("127.0.0.1", 8080);//2.获取输出流
OutputStream out = socket.getOutputStream();
//写数据out.write("Hillo!!!".getBytes());//3.关闭
out.close();

1.2. 服务端

步骤

  1. 创建ServerSocket对象
  2. 同意接受 ,监听客户端的连接
  3. 从连接同道中获取输入流读取对象
  4. 释放
//1.创建ServerSocket对象
ServerSocket server = new ServerSocket(8080);//2.同意接受 ,监听客户端的连接
Socket socket = server.accept();//3.从连接通道中获取输入流读取对象
InputStream input = socket.getInputStream();
int b;
while((b = input.read()) != -1){System.out.print((char)b);
}//4.释放
socket.close();
server.close();
1.2.1. 乱码问题

这是最简洁的代码,如果是中文,可能会出现乱码
那么,现在来改进一下代码

在第三步的位置,把接受的代码改成

InputStream input = socket.getInputStream();
InputStreamReader ins = new InputStreamReader(input);
BufferedReader buffer = new BufferedReader(ins);// 写成一行
BufferedReader buffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));

总结

到现在为止,简单的TCP 和 UDP 的发送端和接收端就可以实现了

还有进阶的,是放在练习里,在不久之后会更新

http://www.whsansanxincailiao.cn/news/30279360.html

相关文章:

  • 网站建设进度表/百度输入法
  • 网站建设和维护待遇怎样/公众号开发
  • 菠菜网站建设条件/国外网站推广公司
  • 网站开发用什么语言好/对百度竞价排名的看法
  • 网站建设开发计划书/seo网站优化技术
  • 建设网站域名的选择/广东seo推广外包
  • 个人网站管理系统/营业推广策略
  • 邯郸教育网站建设/推广app
  • 可以做直播源的佛教网站/推广赚钱的app
  • 淄博网站建设报价/seo课
  • 买域名可以自己做网站吗/营销型网站制作企业
  • 网站中的表单怎么做/线上it培训机构
  • 专做会议推广的网站/云建站模板
  • 网站用户注册怎么做/长沙网站推广合作
  • wordpress后台打开太慢/东莞seo技术
  • 建设银行官方网站首页公司机构/北京网站推广排名服务
  • 网站空间的根目录/seo深圳优化
  • 如何批量建网站/营销技巧和营销方法心得
  • 陕西城乡建设部网站/青岛网站建设制作
  • 网站建设择/如何申请域名
  • 路由器做网站服务器吗/百度关键词搜索指数
  • 做网站后期怎么维护/精准营销理论
  • 石家庄做网站百度推广/百度公司介绍
  • 门户网站建设策划/百度网盘下载慢
  • 网站 规划方案/火蝠电商代运营公司
  • 网站的制作方法/搜索引擎关键词优化
  • 成都装修公司排名哪家好/杭州seo全网营销
  • 南通哪些公司做网站/合肥百度推广优化排名
  • alt网站标签怎么做/成都网站优化及推广
  • seo外包平台/windows优化大师软件介绍