网络编程

网络编程:

  1. 如何定位到一台电脑 IP(人的身份证号码)

2)如何区分多个软件 (端口)

3)如何区分一个软件中的多个资源 url

网络编程:底层 数据如何传输,使用哪种协议

网页编程: 上层

IP 端口 url 协议(合同,规范) : tcp(打电话) udp(发短信|写信) -->更规范,更安全,更高效

IP: 定位网络上的节点(电子设备)

IPV4 IPV6共组织内部使用的额非注册IP: 192.168.0.0 ~ 192.168.255.255

127.0.0.1 本机IP

localhost ->本机域名 --> IP --> DNS服务器转换
InetAddress

端口: port

区分软件

2个字节 0~65535

同一个写一下端口号不能冲突

8000以下的端口号不建议使用–>预留端口号

常见的端口号:

80 http

8080 tomcat

3306 mysql

1521 oracle

InetSocketAddress 端口类(ip+端口)

URL : 统一资源定位符

互联网三大基石 : html http url

协议: 域名、端口、资源

http://www.baidu.com:80/index.html?name=zhangsan&pwd=123#a

传输层协议: 合同

UDP: 写信 发短信 非面向连接 不安全 只管写只管发送->效率高 协议简单,开销小 大小有限制一般不超过60k --> 发送端和接受端两端平等 --> 字节数组

TCP: 打电话 面向连接 安全 基于3次握手-> 1)你在么? 2)在呢 ,建立连接 3)传输 --> 客户端 服务器端 -->IO

Socket 套接字

相当于传输层为应用层开辟的一个小口子

不同协议下Socket实现不同

面向Socket编程

DatagramSocket

DatagramPacket

UDP实现基本流程: 发送端

1.定义发送端 DatagramSocket(int port) 指定发送端ip和端口

2.准备数据–> 转为字节数组

3.打包 DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) 构造一个数据报包发送数据包的长度 length抵消 ioffsetto指定主机上的指定端口号。

4.发送数据 send(DatagramPacket p) 从这个套接字发送一个数据报包。

5.关闭
—文件的传输—> 从本地文件中 读取数据–>传输到对方–>接收到数据–>写出指定本地位置

UDP实现基本流程: 接收端

1.构建接收端

2.准备包裹–>用来接收数据

3.接收

4.处理数据

5.关闭

UDP实现基本流程: 发送端

1.定义发送端 DatagramSocket(int port) 指定发送端ip和端口

2.准备数据–> 转为字节数组

3.打包 DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) 构造一个数据报包发送数据包的长度 length抵消 ioffsetto指定主机上的指定端口号。

4.发送数据 send(DatagramPacket p) 从这个套接字发送一个数据报包。

5.关闭

tcp基于IO流操作

TCP 基本流程: 服务端

1.创建服务端 ServerSocket(int port) 创建绑定到特定端口的服务器套接字。 服务端的端口号

2.阻塞式监听

3.获取IO流

4.读入数据

5.操作数据

6.关闭

TCP 基本流程: 客户端

1.创建客户端 Socket(String host, int port) 指定服务端的IP+端口

2.获取IO流

3.写出数据

4.关闭

传输层协议: 合同

UDP: 写信 发短信 非面向连接 不安全 只管写只管发送->效率高 协议简单,开销小 大小有限制一般不超过60k --> 发送端和接受端两端平等 --> 字节数组

TCP: 打电话 面向连接 安全 基于3次握手-> 1)你在么? 2)在呢 ,建立连接 3)传输 --> 客户端 服务器端 -->IO

Socket 套接字

相当于传输层为应用层开辟的一个小口子

不同协议下Socket实现不同

面向Socket编程

线程优先级:

提高线程优先执行的可能

1~10 1最小 10最大 默认是5

setPriority(int newPriority) 改变这个线程的优先级。

static int MAX_PRIORITY 一个线程可以拥有的最高优先级。
static int MIN_PRIORITY 一个线程可以拥有的最低优先级。
static int NORM_PRIORITY 分配给线程的默认优先级。

线程通信 生产者消费者模式

wait() 等待 当一个线程wait,会进入到对象的等待池中,等待被唤醒

让出cpu的资源,让出 对象锁资源

notify() 唤醒随机一个 唤醒对象等待池中的线程,被唤醒的线程会进入到就绪状态,满足使用条件才可以使用

notifyAll() 唤醒全部

必须要使用在一个同步的环境下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值