黑马程序员——day23UDP TCP
来源:互联网 发布:点击可以优化排名吗 编辑:程序博客网 时间:2024/05/18 05:29
---------------------- android培训 java培训 期待与您交流! ----------------------
网络编程
1,找到对方IP
2,数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识。
为了方便称呼数字,叫做端口。逻辑端口。
3,定义通信规则。这个通信规则称为协议。
国际组织定义了通用协议TCP/IP。
ISO七层模型
从应用层到物理层数据封包,传输到对面层,然后从物理层到应用层进行数据拆包。
物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
TCP/IP四层模型
主机至网路层 网际层 传输层 应用层
IP地址:InetAddress
网络中设备的标识
不易记忆,可用主机名
本地回环地址:127.0.0.1 主机名:localhost
端口号
用于标识进程的逻辑地址,不同进程的标识
有效端口:0到65535,其中0到1024系统使用或保留端口
传输协议
通讯的规则
常见协议:TCP UDP
UDP
将数据及源和目的封装成数据包中,不需要建立连接
每个数据包的大小限制在64K内
因无连接,是不可靠协议
不需要建立连接,速度快
例如:生活中去邮局寄东西(UDP),东西装盒子里(封包),
写寄送地址(接收端口)天堂路到地狱街,没找到丢包。但是
速度快,比你自己送过去快。 QQ,游戏等都是UDP。
TCP
建立连接,形成传输数据的通道。
在连接中进行大数据量传输。
通过三次握手完成连接,是可靠协议。
必须建立连接,效率会稍低。
下载是TCP.
Socket就是为网络服务提供的一种机制。
通信的两端都有Socket
网络通信其实就是Socket间的通信。
数据在两个Socket间通过IO传输。
import java.net.*;
/*
需求:通过udp传输方式,将一段文字数据发送出去。
定义udp的接收端。
思路:
1,建立udpsocket服务。通常会监听一个端口。其实就是给这个接收网络应用程序定义数字标识。
方便于明天哪些数据过来该程序可以处理。
2,提供数据,并将数据封装到数据包中。
3,通过socket服务的发送功能,将数据包发出去。
4,关闭资源。
*/
public class UdpSend
{
public static void main(String[] args) throws Exception
{
//1,创建udp服务,通过DatagramSocket对象。
DatagramSocket ds = new DatagramSocket();
//2,确定数据,并封装成数据包.DatagramPacket(byte[] buf,int length, InetAddress address,int port)
byte[] buf = "udp ge men lai le".getBytes();
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);
//3,通过socket服务,将已有的数据包发送出去,通过send方法。
ds.send(dp);
//关闭资源
ds.close();
}
}
/*
需求:
定义一个应用程序,用于接受udp协议传输的数据并处理的。
思路:
1,定义udpsocket 服务。
2,定义一个数据包,因为要存储接收到的字节数据。
因为数据包对象中有更多功能可以提取字节数据中的不同数据信息。
3,通过socket服务的receive方法将收到的数据存入已定义好的数据包中,
4,通过数据包对象的特有功能,将这些不同的数据取出。打印到控制台。
5,关闭资源。
public class UdpRece
{
public static void main(String[] args) throws Exception
{
//1,创建udp socket,建立断点。
DatagramSocket ds = new DatagramSocket(10000);
//2,定义数据包,用于存储数据。
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
//3,通过服务的receive方法将收到数据存入数据包中。
ds.receive(dp);
//4,通过数据包的方法获取其中的数据。
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
int port = dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
*/
---------------------- android培训 java培训 期待与您交流! ----------------------
- 黑马程序员——day23UDP TCP
- 黑马程序员——网络编程TCP
- 黑马程序员——TCP传输
- 黑马程序员——30,TCP传输
- 黑马程序员——TCP和UDP
- 黑马程序员—网络编程之TCP
- 黑马程序员—网络编程之TCP
- 黑马程序员————Ip、Udp、Tcp
- 黑马程序员——UDP,TCP,Socket简介
- 黑马程序员——TCP客户端,服务端介绍
- 黑马程序员——TCP客户端,服务端互相发送信息
- 黑马程序员——java TCP传输演示
- 黑马程序员——>第二十四天<网络编程(TCP-Tomcat)>
- 黑马程序员——双线程Tcp通信
- 黑马程序员——Java网络编程(TCP和UDP)
- 黑马程序员——网络编程(TCP传输)
- 黑马程序员——网络编程之UDP、TCP/IP
- 黑马程序员——网络编程之TCP传输
- 插入排序
- LeetCode: Multiply Strings
- iframe的onload事件
- 什么是虚拟主机服务
- C++ static、const和static const变量 以及它们的初始化
- 黑马程序员——day23UDP TCP
- 如何重装系统,详细步骤
- hdu 2955 Robberies
- mongoDB系列1.安装
- 请问:在无特权级别的cpu上,如何实现操作系统的保护??
- java基础-- 集合框架 之 Set集合
- Hdu 4345 Permutation
- uva 12501 - Bulky process of bulk reduction 线段树 不好想
- Dell X300上安装ubuntu(U盘安装)