网络编程
网络编程的三要素
举例:
1.Ip地址
2.端口号
3.网络协议
UDP和TCP
UDP和TCP的区别:
1.是否需要建立连接通道
UDP:不需要建立通道(QQ聊天,发短信)
TCP:需要建立连接通道(打电话...)
2.是否是可靠连接(是否安全)
UDP:是一种不可靠连接,不安全---执行效率高
TCP:是一种可靠连接,服务器---一直阻塞状态(同步的---安全性)执行效率低
3.共同点
UDP/TCP---两端都需要Socket(Socket编程)
应用协议
http协议
https协议(比上http协议)
第一要素:
ip地址
192.168.128.1:使用点分十进制法
第二要素:
端口号
使用360软件---查看当前计算机中每个软件的端口号
有效端口号:0-65535
0-1024:保留端口号
一般:80端口号:是不写的(省略)
常见端口号:
Tomcat:8080
Redis:6575
MySQL软件:3306
UDP和TCP的区别
1.是否需要建立连接通道
UDP:不需要建立通道(QQ聊天,发短信)
TCP:需要建立连接通道(打电话...)
2.是否是可靠连接(是否安全)
UDP:是一种不可靠连接,不安全---执行效率高
TCP:是一种可靠连接,服务器---一直阻塞状态(同步的---安全性)执行效率低
3.共同点
UDP/TCP---两端都需要Socket(Socket编程)
InetAddress
没有构造方法,不能直接创建对象,提供一些成员方法使用:静态的
Runntime类:单例模式
提供静态方法,返回该类本身
public static InetAddress[] getAllByName(String host)
参数为主机名称
public String getHosAddress():返回IP地址字符串(文本表现形式)
public String getHostName():获取主机名
Socket编程
特点:
1.两端都需要有Socket对象
2.发送端/客户端:有对应IP地址和端口号
3.接收端/服务端:绑定对应的端口号
UDP接收端的步骤
1.创建接收端
2.创建一个接受容器
3.接受数据
4.解析发送来的实际数据
5.展示数据
获取IP地址的文本形式 getAddressClass()
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
DatagramSocket ds=new DatagramSocket(10010);
byte[] bytes=new byte[1024];
int length=bytes.length;
DatagramPacket dp=new DatagramPacket(bytes, length);
while(true) {
ds.receive(dp);
byte[] buf=dp.getData();
int length2=dp.getLength();
InetAddress address=dp.getAddress();
String ip=address.getHostAddress();
String s=new String(buf,0, length2);
System.out.println("数据是:"+s+" 是来自"+ip);
}
}
}
UDP发送端的步骤
1.创建发送端的Socket对象
2.创建数据报包对象
3.发送数据 send(Datagrampackett dp);
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
public class SendDemo {
public static void main(String[] args) throws IOException {
Scanner sc=new Scanner(System.in);
DatagramSocket ds=new DatagramSocket();
System.out.println("请您输入你要发送的数据,最后以null为停止...");
String s;
while(!((s=sc.nextLine()).equals("null"))) {
byte[] bytes=s.getBytes();
int length=bytes.length;
DatagramPacket dp=new DatagramPacket(bytes, length,
InetAddress.getByName("10.12.156.212"),10010);
ds.send(dp);
}
ds.close();
}
}
·
TCP的基本使用
客户端Scoket
客户端实现步骤:
1.创建客户端Scoket对象 Socket
2.获取客户端通道内输出流,写入内容
3.关闭资源
服务器端:ServerSocket
1.创建服务器端的Socket对象,绑定端口
2.进入阻塞状态,监听客户端连接
3.获取动态(通道)内输入流,读数据
4.展示数据
5.释放资源
TCP的应用----IO流
客户端不断键盘录入数据,服务器端不断接收数据,展示数据
客户端的某个文本文件,服务器端复制文本