网络编程

网络编程

应用层Telent  FTP  SMTP  DNS  HTTP
表示层Telent  FTP  SMTP  DNS  HTTP
会话层Telent  FTP  SMTP  DNS  HTTP
传输层TCP  UDP
网络层IP  ARP  RARP  ICMP
数据链路层各种通信网络
物理层网络接口接口

TCP(transfer control protocol)

一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议 。


特点
面向连接
点到点的通信
高可靠性
占用系统资源多、效率低


UDP(User DatagramProtocol )

一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务


特点:
非面向连接,传输不可靠,可能丢失
发送不管对方是否准备好,接收方收到也不确认
可以广播发送
非常简单的协议,开销小

IP地址

用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。
IP地址分为
IPv4:32位地址
IPV6:128位地址

IP和端口的关系:

IP地址好比每个人的地址(门牌号),端口好比是房间号。必须同时指定IP地址和端口号才能够正确的发送数据


//使用getLocalHost方法创建InetAddress对象
InetAddress addr = InetAddress.getLocalHost();
System.out.println(addr.getHostAddress());  //返回:192.168.88.197

System.out.println(addr.getHostName());  //输出计算机名


//根据域名得到InetAddress对象

addr = InetAddress.getByName(“www.163.com”); 
System.out.println(addr.getHostAddress());  //返回 163服务器的ip:61.135.253.15
System.out.println(addr.getHostName());  //输出:www.163.com

URL(Uniform Resource Locator) 

统一资源定位符,由4部分组成:协议 、存放资源的主机域名、端口号和资源文件名。
URL是指向互联网“资源”的指针。

Socket套接字

Socket实际是网络传输层供给应用层的编程接口。传输层则在网络层的基础上提供进程到进程问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信。Socket就是应用层与传输层之间的桥梁

TCP编程
用户输入用户名密码,服务器给出登录成功或失败的提示
1.服务器创建ServerSocket,需要指定监听的端口,会在指定端口监听并处理请求; 2.ServletSocket通过accept()
  2.接收用户请求并返回对应的Socket,否则一种处于监听等待状态,线程也被阻塞
  3.客户端创建Socket,需要指定服务器的ip和端口号,向服务器发送请求和接收响应
  4.客户端发送数据需要输出流(写),客户端获取反馈数据需要输入流(读) 服务端反馈数据需要输出流(写),服务端获取请求数据需要输入流(读)
 5.socket.getInputStream() socket.getOutputStream() 可以获取网络通信对方的流
 6.一旦使用ServerSocket和Socket建立了网络连接后,网络通信和普通IO流操作并没有太大区别
7.网络通信输出流建议使用DataOutputStream和ObjectOutputStream,与平台无关,
  输入流相应使用DataIntputStream和ObjectInputStream
  8.如果是字符串通信也可以使用BufferedReader和PrintWriter/BufferedWriter,简单方便
9.关闭socket产生的流,会同时关闭掉Socket



©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页