个人商城网站建设中企动力网站好么

当前位置: 首页 > news >正文

个人商城网站建设,中企动力网站好么,wordpress 禁止右键,wordpress single cat文章目录一、为什么需要网络编程二、什么是网络编程三、网络编程中的基本概念1.发送端和接收端2.请求和响应3.客户端和服务端4.常见的客户端服务端模型四、Socket套接字概念及分类1.概念2.分类1#xff09;流套接字#xff1a;使用传输层TCP协议2#xff09;数据报套接字流套接字使用传输层TCP协议2数据报套接字使用传输层UDP协议3原始套接字五、Java数据报套接字通信模型六、Java流套接字通信模型七、Socket编程注意事项一、为什么需要网络编程 在网络上可以获取的各种数据资源就叫做网络资源。 我们可以通过上网查询到我们想要的资源而这些丰富的网络资源就是通过网络编程来进行传输的。 与本地打开视频资源类似只是视频文件资源的来源是网络。相比本地资源网络提供了更为丰富的网络资源比如视频资源、图片资源、文本资源等。 二、什么是网络编程 网络编程就是网络上的主机通过不同的进程以编程的方式实现网络通信/网络数据传输。 这就意味网络编程可以是不同主机上的不同进程进行通信也可以是同一台主机上的不同进程进行通信。 简言之网络编程就是不同进程通过网络进行通信。 进程A编程来获取资源 进程B编程来发送/提供资源 这里边的核心就是学习Socket Api。是和传输层密切相关的。传输层提供了两个最核心的协议——udp\TCp他对应的也提供了两种风格udp和tcp第三种风格的是unix领域的套接字现在早就没人用了 Socket英译就是插座这里我们的术语翻成了套接字有一定历史背景但是我不知道 网络编程本质上就是操作网卡。 三、网络编程中的基本概念 1.发送端和接收端 一次网络数据传输时 发送端数据的发送方进程称为发送端。对应的发送端主机就是网络通信中的源主机。 接收端数据的接收方进程称为接收端。对应的接收端主机即网络通信中的目的主机。 收发端发送端和接收端两端也简称为收发端。 注意收发端是相对的或者说是由网络数据传输流向决定的主动的就是发送端被动的就是接收端。 2.请求和响应 一般获取一个网络资源涉及到两次网络数据传输。第一次就是请求第二次就是响应。 3.客户端和服务端 在上述网络通信过程中主机A的进程是获取服务/资源的一方也称为客户端主机B的进程是提供服务/资源的一方也称为服务器。 4.常见的客户端服务端模型 最常见的场景客户端是指给用户使用的程序服务端是提供用户服务的程序 客户端先发送请求到服务端服务端根据请求数据执行相应的业务处理服务端返回响应发送业务处理结果客户端根据响应数据展示处理结果展示获取的资源或提示保存资源的处理结果 四、Socket套接字概念及分类 1.概念 Socket套接字就是由系统提供用于网络通信的技术。 Socket套接字是基于TCP/IP协议进行网络通信的基本操作单元。 网络编程就是基于Socket套接字的网络程序开发。 2.分类 套接字是传输层专有的吗它跟整套TCP/IP协议栈又有什么关系 1流套接字使用传输层TCP协议 TCP即Transmission Control Protocol传输控制协议。是传输层协议的一种。 TCP的特点有连接、可靠传输、面向字节流、全双工 对于这里的有连接 需要连接建立了才能通信。 对于这里的可靠传输 发送方能知道自己的消息是不是发过去了还是丢了。 对于这里的面向字节流传输数据是基于IO流。 流式数据的特征就是在IO流没有关闭的情况下是无边界的数据、可多次发送也可分开多次接受。和文件io/读写类似。 对于这里的全双工 全双工一个通信通道可以双向传输A→B且B→A。指A→B的同时B→A是瞬时同步的。 半双工一个通信通道只允许单向传输A→B或B→A。 为什么tcp和udp都是全双工的 一根网线其实有8根线有的负责上传有的负责下载相当于8车道。 不只是这里整个计网大部分情况还是全双工 宿舍的网不改成半双工用不了 与路由器和交换机配置有关 关于网速 与传输的数据量类比马路上跑的车辆和带宽类比马路的宽度有关系。 网络转发设备的转发能力是有上限的他们转发的数据不只是我们自己的数据。一旦其中一个设备有问题就会慢。 上传比下载慢是运营商的问题上行带宽下行带宽一般都快于上行带宽 百度网盘是属于软件限速和带宽没有关系。 idm是Internet download manager好像是能提高下载速度一般是浏览器插件。 2数据报套接字使用传输层UDP协议 UDP即User Datagram Protocol用户数据报协议。一种传输层协议。 UDP特点无连接、不可靠传输、面向数据包、全双工 对于这里面向数据包 可以理解为数据包为基本的收发单位。一个数据报可能是好几个字节。数据量大了就多弄几个数据包但是即使是数据量少了比如一个字节也不能说不包裹直接发送必须封装成数据包进行发送。 3原始套接字 原始套接字用于自定义传输层协议用于读写内核没有处理的IP协议数据。 是在unix角度来讲的现在很少用。。 仅作了解即可。 五、Java数据报套接字通信模型 对于UDP协议来讲每次通信都不需要进行连接并且一次发送全部数据一次接收全部数据。 Java中使用UDP协议进行通信主要基于DatagramSocket类来创建数据报套接字基于DatagramPacket类对象来作为发送/接受UDP数据报。 六、Java流套接字通信模型 七、Socket编程注意事项 客户端和服务器开发时经常时基于一个主机开启两个进程作为客户端和服务器应用时一般是不同主机的分别作为客户端和服务器 目的ip和目的端口号两者分别表示了一次数据发送过程中要发送数据的终点主机因为实际上一次数据传输过程中一般需要经过很多路由器等网络设备和终点进程。 Socket编程我们是使用流套接字和数据报套接字基于传输层的TCP或UDP协议但应用层协议也需要考虑这块我们在后续来说明如何设计应用层协议 端口号和socket对象是多对一的 端口被占用即进程B试图绑定一个已经被另一个进程A绑定的端口号。此时会报这样的错误信息。 解决办法检查B进程试图绑定的端口号查看此端口号被哪个进程占用 ·如果占用端口进程A不需要运行就可以关闭A后再启动需要绑定该端口的进程B ·如果需要运行就修改进程B的绑定端口换成其他没有使用的端口。 在cmd输入 netstat -ano | findstr 端口号 则可以显示对应进程的pid。如以下命令显示了8888进程的pid 在任务管理器ctrlaltdelete中通过pid查找进程