计算机网络:
多台计算机通过网络协议,实现网络资源共享和信息传递!
http://localhost:端口号 (80)www.baidu.com
username:admin
password:%AE%.... MD5算法 加密很难解密
网络通信三要素
1)ip地址 一般是本机的ip地址: 获取方式,在运行输入行里打cmd--ipconfig就可以查阅到
2)端口号 链接两台计算机的工具
3)应该有一些规则(协议UDP/TCP)
举例:
我想和高圆圆聊天...
1)找到她,才能和她说话------>IP地址
2)假设找她了,怎么说呢?
对着她耳朵说话------->port端口号
3)要对她:i love you
假设不懂英文,----->定义规则(协议)
IP地址:
192.168.10.1 (通过8421码将可以由0,1组成的一些数据)
点分十进制法:十进制.十进制.十进制.十进制 书写简单
11000000.0000100....
Ip地址的分类:
IP地址的组成
IP地址 = 网络号码+主机地址
A类IP地址:第一段号码为网络号码,剩下的三段号码为本地计算机的号码
一般情况:国防部/大的国部门
B类IP地址:前二段号码为网络号码,剩下的二段号码为本地计算机的号码
一般情况:大学里面的多媒体教室
C类IP地址:前三段号码为网络号码,剩下的一段号码为本地计算机的号码
私人地址
A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址 (2)127.X.X.X是保留地址,用做循环测试用的。
B类 128.0.0.1---191.255.255.254 172.16.0.0---172.31.255.255是私有地址。169.254.X.X是保留地址。
C类 192.0.0.1---223.255.255.254 192.168.X.X是私有地址
D类 224.0.0.1---239.255.255.254
E类 240.0.0.1---247.255.255.254
127.0.0.1--->表示本地计算机的回环地址
dos
ipconfig
ping ip地址 是否能通信
声呐系统(二战)
端口号:0~65535有效端口号
0-1024属于保留端口
mysql:3306
协议:
UDP协议 --->UDP编程
不需要建立连接通道的
数据大小有限制
不可靠连接
执行效率高
TCP协议 ---->TCP编程
需要建立连接通道
数据大小无限制
可靠连接
执行效率低
打电话:看成TCP协议 建立连接通道
发短信:UDP协议 不需要建立连接通道
InetAddress:类表示互联网协议 (IP) 地址
如果一个类中没有构造方法,没有字段,只有成员方法?有什么特征
1)应该有一些静态功能(Math类,Arrays,Collections...)
2)可能符合一种单例模式(饿汉/懒汉)
3)该类中的某些静态成员方法的返回值是该类本身
举例
public class Demo{
public static Demo getDemo(){
new Demo() ;
}
}
常用方法:
public static InetAddress getByName(String host) throws UnknownHostException在给定主机名的情况下确定主机的 IP 地址。
public String getHostAddress()返回 IP 地址字符串(以文本表现形式)
1)不需要建立连接通道
2)数据大小有限制
3)不可靠连接---->传输速度快!
发送端的开发步骤:
1)创建发送端的Socket对象
2)创建数据,并打包
3)调用当前发送端Socket对象中的发送的方法
2)创建一个数据报包(接收容器)
3)调用Socket对象中的接收的方法
4)解析实际传递的数据
5)将解析的数据(ip,数据)展示在控制台上
public InetAddress getAddress() :返回ip地址对象 数据报包类:DataGramPacket
举例:
多台计算机通过网络协议,实现网络资源共享和信息传递!
http://localhost:端口号 (80)www.baidu.com
username:admin
password:%AE%.... MD5算法 加密很难解密
网络通信三要素
1)ip地址 一般是本机的ip地址: 获取方式,在运行输入行里打cmd--ipconfig就可以查阅到
2)端口号 链接两台计算机的工具
3)应该有一些规则(协议UDP/TCP)
举例:
我想和高圆圆聊天...
1)找到她,才能和她说话------>IP地址
2)假设找她了,怎么说呢?
对着她耳朵说话------->port端口号
3)要对她:i love you
假设不懂英文,----->定义规则(协议)
IP地址:
192.168.10.1 (通过8421码将可以由0,1组成的一些数据)
点分十进制法:十进制.十进制.十进制.十进制 书写简单
11000000.0000100....
Ip地址的分类:
IP地址的组成
IP地址 = 网络号码+主机地址
A类IP地址:第一段号码为网络号码,剩下的三段号码为本地计算机的号码
一般情况:国防部/大的国部门
B类IP地址:前二段号码为网络号码,剩下的二段号码为本地计算机的号码
一般情况:大学里面的多媒体教室
C类IP地址:前三段号码为网络号码,剩下的一段号码为本地计算机的号码
私人地址
A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址 (2)127.X.X.X是保留地址,用做循环测试用的。
B类 128.0.0.1---191.255.255.254 172.16.0.0---172.31.255.255是私有地址。169.254.X.X是保留地址。
C类 192.0.0.1---223.255.255.254 192.168.X.X是私有地址
D类 224.0.0.1---239.255.255.254
E类 240.0.0.1---247.255.255.254
127.0.0.1--->表示本地计算机的回环地址
dos
ipconfig
ping ip地址 是否能通信
声呐系统(二战)
端口号:0~65535有效端口号
0-1024属于保留端口
mysql:3306
协议:
UDP协议 --->UDP编程
不需要建立连接通道的
数据大小有限制
不可靠连接
执行效率高
TCP协议 ---->TCP编程
需要建立连接通道
数据大小无限制
可靠连接
执行效率低
打电话:看成TCP协议 建立连接通道
发短信:UDP协议 不需要建立连接通道
InetAddress:类表示互联网协议 (IP) 地址
如果一个类中没有构造方法,没有字段,只有成员方法?有什么特征
1)应该有一些静态功能(Math类,Arrays,Collections...)
2)可能符合一种单例模式(饿汉/懒汉)
3)该类中的某些静态成员方法的返回值是该类本身
举例
public class Demo{
public static Demo getDemo(){
new Demo() ;
}
}
常用方法:
public static InetAddress getByName(String host) throws UnknownHostException在给定主机名的情况下确定主机的 IP 地址。
public String getHostAddress()返回 IP 地址字符串(以文本表现形式)
public String getHostName()获取此 IP 地址的主机名。
参数:
主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式
举例:
public class Demo {
public static void main(String[] args) throws Exception {
//创建InetAdress对象,再知道主机名的情况下
// InetAddress address = InetAddress.getByName("DESKTOP-B8D16P1");
//ip的文本形式
// System.out.println(address);
InetAddress address=InetAddress.getByName("192.168.43.204");
String ip = address.getHostAddress();
System.out.println(ip);//192.168.43.204
String name = address.getHostName();
System.out.println(name);
}
}
Udp编程
1)不需要建立连接通道
2)数据大小有限制
3)不可靠连接---->传输速度快!
发送端的开发步骤:
1)创建发送端的Socket对象
2)创建数据,并打包
3)调用当前发送端Socket对象中的发送的方法
4)关闭资源
接收端 开发步骤:
1)创建Socket对象2)创建一个数据报包(接收容器)
3)调用Socket对象中的接收的方法
4)解析实际传递的数据
5)将解析的数据(ip,数据)展示在控制台上
6)关闭资源
常用方法:
DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
public void send(DatagramPacket p) throws IOException从此套接字发送数据报包
public InetAddress getAddress() :返回ip地址对象 数据报包类:DataGramPacket
举例:
public class Send {
public static void main(String[] args) throws IOException {
//1)创建发送端的Socket对象
DatagramSocket ds=new DatagramSocket();
//2)创建数据,并打包
//DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
byte[] b="你非常无敌的爸爸来了".getBytes();
int len = b.length;
InetAddress name = InetAddress.getByName("192.168.43.204");
int port=10086;
DatagramPacket d=new DatagramPacket(b,0,len,name,port);
//3)调用当前发送端Socket对象中的发送的方法
/*public void send(DatagramPacket p)
throws IOException从此套接字发送数据报包*/
ds.send(d);
//4)关闭资源
ds.close();
}
}
public class Receive {
public static void main(String[] args) throws IOException {
//1)创建Socket对象
DatagramSocket ds=new DatagramSocket(10086);
//2)创建一个数据报包(接收容器)
//public DatagramPacket(byte[] buf, int length)
byte[] b=new byte[1024];
int len =b.length;
DatagramPacket dp=new DatagramPacket(b,len);
//3)调用Socket对象中的接收的方法
ds.receive(dp);
//获取ip地址
//public InetAddress getAddress() :返回ip地址对象 数据报包类:DataGramPacket
InetAddress address = dp.getAddress();
String ip = address.getHostAddress();
//4)解析实际传递的数据
//public byte[] getData() :获取缓冲中实际数据(从接收容器中获取)
byte[] b2 = dp.getData();
//public int getLength()返回将要发送或接收到的数据的长度。
int len2 = dp.getLength();
String data=new String(b2, 0, len2);
System.out.println("当前接受的数据时:"+data+",来自于"+ip);
//5)将解析的数据(ip,数据)展示在控制台上
//6)关闭资源
ds.close();
}
}
注释:接受端不要运行多次,否则会出现异常。