我是靠谱客的博主 沉静画笔,最近开发中收集的这篇文章主要介绍网络编程 OSI TCP/IP模型 基于TCP的网络编程网络编程:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网络编程:

网络模型:OSI( 开放式系统互联 )

第一层 :物理层 , 为设备间的数据通信提供传输信号和物理介质 (双绞线,光导纤维)

第二层 :数据链路层 , 提供介质访问和链路管理。通过规程或协议来控制传输数据的正确性 (MAC)

第三层 :网络层 , ip选址和路由选择 (ip地址)

第四层 :传输层 , 建立,管理和维护端到端的连接 (TCP/UDP)

第五层 :会话层 , 建立,管理和维护会话 (断点续传)

第六层 :表示层 , 数据格式转化,数据加密

第七层 :应用层 , 为应用程序提供服务,负责文件访问和管理,可靠运输服务,远程操作服务 (HTTP FTP SMTP)

TCP/IP模型:

第一层 : 网络接口层 , 负责建立电路连接,整个网络的物理基础 典型协议包括以太网,ADSL等

第二层 : 网络层 , 负责分配地址和传送二进制数据,主要协议是IP协议

第三层 : 传输层 , 负责传送文本数据,主要协议是TCP UDP协议

第四层 : 应用层 , 负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP,FTP等

TCP/UDP区别:

TCP协议:传输控制协议

​ 是一种面向连接的,可靠的,基于字节流的传输通信协议,数据大小无限制,建立连接的过程需要三次握手, 断开连接时需要四次挥手

UDP协议: 用户数据报协议

​ 是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包大小是64kb

ip:分配给互联网设备的唯一标识

port:在通信实体上进行网络通讯的程序的唯一标识

InetAddress类:

表示互联网协议(ip)地址对象,封装了与该IP地址相关的所有信息, 并提供获取信息的常用方法

public  static  InetAddress  getLocalHost()    获得本地主机地址对象
public  static  InetAddress  getByName(String host)  根据主机名获得地址对象
public  static  InetAddress[] getAllByName(String host)  获得所有相关地址对象
public  String  getHostAddress()  获取IP地址字符串
public  String  getHostName() 获得IP地址主机名


基于TCP的网络编程:

Socket编程: Socket( 套接字 ) 是网络中的一个通信节点,分为客户端Socket 和服务器ServerSocket ,通信要求:ip地址+端口号

public class TcpServer {
	public static void main(String[] args) throws Exception {
		ServerSocket listener = new ServerSocket(9999); // 实例化一个端口号为9999的服务器
		System.out.println("服务器启动....");
		Socket socket = listener.accept(); // 代码到这里不往下运行,服务器等待用户请求,接入客户端
		InputStream is = socket.getInputStream();
		// 有客户端来访问该服务器,就会实例化一个该服务器的输入流,用来接收客户端的数据
		BufferedReader br = new BufferedReader(new InputStreamReader(is,
				"utf-8"));
		String data = br.readLine();
		System.out.println("客户发送:" + data);
		br.close();
		socket.close();
		listener.close();
		}
	}
	
	
	public class TcpClient {
	public static void main(String[] args) throws Exception {
		Socket socket = new Socket("127.0.0.1", 9999);//
		// 客户端与服务器建立连接,可以向服务器发送数据和接收服务器传送过来的数据
		//socket.getOutputStream()获得流
		OutputStream os = socket.getOutputStream();// 输出流属于客户端和服务器的
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os,
				"utf-8"));
		bw.write("好久不见");
		bw.fliush();
		bw.close();
		socket.close();
		}
	}

最后

以上就是沉静画笔为你收集整理的网络编程 OSI TCP/IP模型 基于TCP的网络编程网络编程:的全部内容,希望文章能够帮你解决网络编程 OSI TCP/IP模型 基于TCP的网络编程网络编程:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部