目录 一、网络编程1.1、为什么需要网络编程?现在网络普及程度越来越高,网络上保存着我们日常生活中所需要的各种资源,使用程序通过网络来获取这些资源的过程就需要网络编程来实现。 1.2、什么是网络编程网络编程,是指网络上的主机,通过不同的进程,以程序的方式实现网络编程(网络数据传输)。
1.3、发送端和接收端在第一次网络数据传输时: 发送端:数据的发送方进程,称为发送端,发送端主机即网络通信中的源主机。 接收端:数据的接收方进程,称为接收端,接收端主机即网络通信中的目的主机。 收发端:发送端和接收端两端,简称为收发端。 注意:发送端和接收端只是相对的,只是一次网络数据传输产生数据流向后的概念。 1.4、请求和响应一般来说,获取一个网络资源,涉及到两次数据传输:
好比餐馆吃饭:先要发起请求—点份炒饭;响应对方的请求—提供一份炒饭。 1.5、客户端和服务端服务端:在常见的网络数据传输的场景下,把提供服务的一方进程,称为服务端,可以对外提供服务。 客户端:获取服务的一方进程,称为客户端。 对于服务来说,一般是提供:
好比我们在银行办理业务
常见的客户端和服务端模型 客户端是只给用户使用的程序,服务端是提供用户服务的程序。
二、Socket套接字2.1、概念Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。基于Socket套接字的网络程序开发就是网络编程。 2.2、分类Socket套接字主要针对传输层协议划分为如下三类: 2.2.1、流套接字使用传输层TCP协议,以下为TCP协议的特点
对于字节流来说,可以简单理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下,是无边界的数据,可以多次发送,也可以分开多次发送。 2.2.2、数据报套接字使用传输层UDP协议 ,以下为UDP协议的特点
对于数据报来说,可以简单理解为,传输数据是一块一块的,发送一块数据假如是100个字节,必须一次性发送,接收也必须一次性接收,而不能分一百接收,每次接收一个字节。 2.2.3、原始套接字原始套接字用于自定义传输协议,用于读写内核没有处理的IP协议数据。 有兴趣了解的盆友可以去看看这位大佬的博客原始套接字 2.3、Socket编程注意事项
如果一个进程A已经绑定了一个端口,再启动一个进程B绑定该端口,就会报错,这种情况也叫端口占用。对于java进程来说端口占用报错信息 此时就需要检查进程B绑定的是哪个端口,再查看哪个端口被占用,以下为端口查看进程的方式
|
原文地址:https://blog.csdn.net/m0_53714343/article/details/131611256
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-518.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2024, msipo.com