03 网络编程

1、OSI七层模型与TCP/IP四层模型?

答:OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

    TCP/IP四层模型:网络接口层(物理层、数据链路层)、网际层、传输层、表示层                            (会话层、表示层、应用层)。

2、网络四类地址的区间

网络地址分为网络位和主机位。

A类地址:1.0.0.0 --- 127.255.255.255(127.0.0.1为回环地址)(ping通本地回环地址说明本机协议没问题)

B类地址:128.0.0.0 --- 191.255.255.255

C类地址:192.0.0.0 --- 223.255.255.255

D类地址:224.0.0.0 --- 239.255.255.255(广播地址)

3、TCP服务器、客户端创建流程

TCP服务器端创建流程:创建通信用文件描述符(socket)-->设置端口号和IP地址(为绑定做准备)-->绑定(bind)-->监听(listen)-->接受请求,建立连接(accept)-->发送与接收消息(send/recv)-->关闭文件(close)

TCP客户端创建流程:创建通信用文件描述符(socket)-->设置端口号和IP地址-->发起连接请求(connect)-->接受与发送消息(send/recv)-->关闭文件(close)

4、UDP服务器、客户端创建流程

UDP服务器端创建流程:创建通信用文件描述符(socket)-->设置端口号和IP地址(为绑定做准备)-->绑定(bind)-->接受和发送消息(sendto && recvfrom)-->关闭文件(close)

UDP客户端创建流程:创建通信用文件描述符(socket)-->设置端口号和IP地址-->接受与发送消息(sendto && recvfrom)-->关闭文件

5、TCP与UDP的区别?

(1)TCP是面向连接的协议,UDP是面向无连接的协议。

(2)TCP对系统资源要求较多,UDP对系统资源要求较少

(3)TCP是数据流模式,UDP是数据报模式。

(4)TCP保证数据顺序及数据的正确性,UDP可能会丢包。

6、简述三次握手与四次挥手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送SYN(SYN = j)包到服务器,并进入SYN_SEND状态,等待服务器的确认;

第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK = j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

7、四次挥手

四次挥手的过程(客户端或服务器均可主动发起挥手动作)

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。 

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。            

(和SYN一样,一个FIN将占用一个序号)。 

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP网络编程是使用TCP协议进行网络通信的编程技术,它可以实现可靠的、面向连接的数据传输。在Java中,可以使用Socket类和ServerSocket类实现TCP网络编程。 在TCP网络编程中,通常有客户端和服务端两个角色。客户端通过创建一个Socket对象与服务端建立连接,并通过该Socket对象进行数据的发送和接收。服务端通过创建一个ServerSocket对象监听指定的端口号,等待客户端的连接请求,一旦接收到连接请求,就会创建一个Socket对象与客户端进行通信。 在提供的引用中,有三个示例代码:SocketTCP03Server、SocketTCP02Client和SocketTCP02Server。这些示例代码演示了基本的TCP网络编程过程。 SocketTCP03Server示例代码展示了服务端的实现。它创建一个ServerSocket对象,并监听9999端口。一旦接收到连接请求,就会创建一个Socket对象与客户端进行通信。通过Socket对象的getInputStream()方法获取输入流,可以读取客户端发送的数据。通过Socket对象的getOutputStream()方法获取输出流,可以向客户端发送数据。最后,关闭相关的流和Socket连接。 SocketTCP02Client示例代码展示了客户端的实现。它创建一个Socket对象,并指定服务器的IP地址和端口号。通过Socket对象的getOutputStream()方法获取输出流,可以向服务器发送数据。通过Socket对象的getInputStream()方法获取输入流,可以读取服务器返回的数据。最后,关闭相关的流和Socket连接。 SocketTCP02Server示例代码也展示了服务端的实现。它创建一个ServerSocket对象,并监听9999端口。一旦接收到连接请求,就会创建一个Socket对象与客户端进行通信。通过Socket对象的getInputStream()方法获取输入流,可以读取客户端发送的数据。通过Socket对象的getOutputStream()方法获取输出流,可以向客户端发送数据。最后,关闭相关的流和Socket连接。 通过阅读这些示例代码,你可以了解到如何使用Java进行TCP网络编程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Java网络编程 ---- TCP 网络通信编程](https://blog.csdn.net/m0_53022813/article/details/124638452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值