网络编程Socket编程 23天

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员_毕向东_Java基础视频教程第23天-01-网络编程(概述)

黑马程序员_毕向东_Java基础视频教程第23天-02-网络编程(概述2)

黑马程序员_毕向东_Java基础视频教程第23天-05-网络编程(TCP和UDP)

网络模型

OSI参考模型

TCP/IP参考模型

网络通讯要素

IP地址

端口号

传输协议

1找到对方IP

2数据要发送到对方指定的应用上,为了标识这些应用程序,所以给这些网络应用程序都用

数字进行标识.为了方便称呼这个数字.叫做端口(逻辑端口)

3定义通讯规则.这个通讯规则称为协议.

国际组织就定义了通用协议,TCP/IP.  UDP/IP

最常见的是TCP UDP


127.0.0.1本地回环地址

端口0-1024系统保留了.

web服务器端口 8080

     3306.


OSI参考模型.7层


传输层  TCP UDP 就是在这层.


网络层 ,IP地址的协议就在这层

物理层  网线,,无线就是物理层.

走完7层,就是数据分包.

传输到目标处,就开始数据拆包.


然后来又出现了 TCP/IP参考模型 只有4层

应用层 Http FTP也是应用层协议

传输层 TCP  UDP

网际层 IP

主机至网络层


我们搞软件的是在网际层,和传输层,应用层.

网络通讯要素

IP地址  InetAddress

网络中设备的标识

不易记忆,可用主机名.

本地回环地址,127,0,0.1 主机名:localhost

端口号
用于标识进程的逻辑地址,不同进程的标识.

有效端口0-65535,其中0-1024系统使用或保留端口

传输协议.

通讯的协议.

常见协议TCP,UDP

UDP 他是面向无连接的.,我在发数据前,不需要建立连接

不管你在不在,我都发出去,你在,你就收的到,你不在,就丢掉.

UDP

将数据及源和目的封装成数据包中,不需要建立连接.

每个数据包的大小限制64K内.

因无连接,是不可靠协议.

不需要建立连接,速度快.


TCP

建立连接形成传输数据的通道.

在连接中进行大数据量传输.

通过三次握手完成连接,是可靠协议.

必须建立连接,效率较低.


UDP TCP这8句话背下来.

黑马程序员_毕向东_Java基础视频教程第23天-06-网络编程(Socket)

Socket 就是为网络服务提供的一种机制.

通信的两端都有Socket.

网络通信其实就是Socket间的通信

数据在两个Socket间通过IO传输.

黑马程序员_毕向东_Java基础视频教程第23天-07-网络编程(Udp-发送端)

黑马程序员_毕向东_Java基础视频教程第23天-08-网络编程(Udp-接收端)

import java.net.*;
/*
需求:通过udp传输方式,将一段文字数据发送出去.
定义了一个Udp发送端
思路:
1建立updsocket服务.
2,提供数据,并将数据封装到数据包中.
3.通过socket服务的发送功能,将数据包发出去.
4.关闭资源
*/
class UdpSend{
	public static void main(String[] args) throws Exception{
		//1创建UdP服务,通过DatagramSocket对象.
		DatagramSocket ds=new DatagramSocket(8888);
		//2,确定数据,并封装成数据包.
		byte[] buf="udp ge men lai le ".getBytes();
		DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName

("127.0.0.1"),10000);
		//3,通过socket服务,将已有的数据包发送出去,通过send方法.	
	
		ds.send(dp);
		//4.关闭资源.
		ds.close();
	}
}
/*
需求:
定义一个应用程序,用于接收udp 协议传输的数据并处理的.

思路:
1,定义udpsocket服务.通常都会监听一个端口,其实就是给这个接收网络应用程序定义一个数字标识.
  方便明确哪些数据过来,该应用程序可以处理.
2.定义一个数据包,因为要存储接收到的字节数据,
因为数据包对象中有更多功能可以提取字节数据中不同数据信息
3.通过Socket服务的receive方法将收到的数据存入已定义好的数据包中.
4.通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上.
5,关闭资源.
*/
class UdpRece{
	public static void main(String[] args) throws Exception{
	//1,创建udp socket建立端点.
	DatagramSocket ds=new DatagramSocket(10000);
	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 pot =dp.getPort();
	System.out.println(ip+"::"+data+"::"+pot);
	//5关闭资源
	ds.close();	
	}
}



 

你可能感兴趣的:(JAVA视频笔记)