什么是网络编程?

By admin on 9月 23, 2022

HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用开号、密码等。

台接入互联网的计算机至少有一个IP地址。

下面我们来设计一个使用多线程技术处理多个用户请求的服务器,该服务器会向连接到服务器的客户端发送一张图片。

网络是人类发展史上最重要的发明,提高了人类和科技的一个发展。

Java语言对网络编程提供了良好的支持。

Socket刚刚创建完成后,还没有数据,也不知道通信对象。

TCP/IP四层模型详细介绍见https://blog.csdn.net/Stars____/article/details/108694074SCTP协议:TCP的升级版TCP/IP网络编程unix域套接字:用于本地进程间的通信。

计算机网络体系结构是计算机网络层次和协议的集合,网络体系结构对计算机网络实现的功能,以及网络协议、层次、接口和服务进行了描述,但并不涉及具体的实现。

有了IP地址和端口的概念以后,在进行网络通讯交换时,就可以通过IP地址查找到该台计算机,然后通过端口标识这台计算机上的一个唯一的程序。

于是,上面的IP地址可以表示为192.168.1.66″。

并且Java实现了一个跨平台的网络库,**程序员面对的是一个统一的网络编程环境**。

如:A需要发送一段字符串给B,那么A与B建立连接,然后发送双方都默认好的协议字符如”hellogivemesthabouryourself”,然后B收到报文后,就将缓冲区数据接收,然后关闭连接,这样粘包问题不用考虑到,因为大家都知道是发送一段字符;2:如果发送数据无结构,如文件传输,这样发送方只管发送,接收方只管接收存储就ok,也不用考虑粘包;3:如果双方建立连接,需要在连接后一段时间内发送不同结构数据,如连接后,有好几种结构:1)”hellogivemesthabouryourself”2)”Don\tgivemesthabouryourself”那这样的话,如果发送方连续发送这个两个包出去,接收方一次接收可能会是”hellogivemesthabouryourselfDon\tgivemesthabouryourself”这样接收方就傻了,到底是要干嘛?不知道,因为协议没有规定这么诡异的字符串,所以要处理把它分包,怎么分也需要双方组织一个比较好的包结构,所以一般可能会在头加一个数据长度之类的包,以确保接收。

、网络协议如同人与人之间相互交流是需要遵循一定的规则(如语言)一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议。

为了方便理解这两种方式,还是先来看个例子。

而**URL类**则不仅符合语义,还包含了定位该资源的信息,因此它**不能是相对的**四:小结1.计算机具有唯一的**IP地址**,这样不同的主机可以互相区分2.**端口号**是对一个服务的访问场所,它用于区分同一物理计算机上的多个服务。

所以,域名就诞生了,让域名和IP创建对应关系,用户只需要记住域名就可以了,例如:www.baidu.com–>110.242.68.3www.taobao.com–>121.18.239.232…注意:域名只是和IP创建了对应关系,与端口无关`www.baidu.com:80`。

**以下是connect的伪码调用:**>connect(<描述符>、<服务器IP地址和端口号>)这些信息会传递给协议栈中的TCP模块,TCP模块会对请求报文进行封装,再传递给IP模块,进行IP报文头的封装,然后传递给物理层,进行帧头封装。

在操作系统内部有一块用于存放控制信息的存储空间,这块存储空间记录了用于控制通信的控制信息。

互联网的事实协议就是TCP/IP。

能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

_**基于文件类型的套接字家族**_套接字家族的名字:AF_UNIXunix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信_**基于网络类型的套接字家族**_套接字家族的名字:AF_INET(还有AF_INET6被用于ipv6,还有一些其他的地址家族,不过,他们要么是只用于某个平台,要么就是已经被废弃,或者是很少被使用,或者是根本没有实现,所有地址家族中,AF_INET是使用最广泛的一个,python支持很多种地址家族,但是由于我们只关心网络编程,所以大部分时候我么只使用AF_INET)六套接字的工作流程(基于TCP和UDP两个协议)6.1TCP和UDP对比TCP(TransmissionControlProtocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。

客户端断开连接时,服务端内部会抛出异常,在控制台里面异常日志一律以红色显示。

发表回复

您的电子邮箱地址不会被公开。