Java 网络编程 学习笔记一 基础知识

本文介绍了Socket编程的基础知识,包括服务端与客户端的实现方法,并对比了TCP/IP与OSI参考模型的不同之处。此外,还详细阐述了TCP与UDP协议的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-fareast-font-family:宋体; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:Calibri; mso-fareast-font-family:宋体; mso-hansi-font-family:Calibri; mso-font-kerning:0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

 

一、服务端 Socket

使用类: ServerSocket serverSocket =new ServerSocket(port)

Socket socket = serverSocket.accept()---Server 阻塞监听连接,当有客户端连接过来时,产生一个 socket 对象, socket 对象中存放客户端的信息

InputStream input=socket.getInputStream()--- 获取客户端的输入流

OutputStream out =socket.getOutputStream()---- 向客户端写入数据的输出流

 

二、客户端 Socket

 

使用类: Socket clientSocket = new Socket(host,port)--- 创建客户端 Socket ,当客户端与 Server 连接成功时,产生一个 Socket 对象, socket 对象存放服务端的信息,

 

三、 OSI 参考模型

 

1 、物理层

2 、数据链路层

3 、网络层

4 、传输层

5 、会话层

6 、表示层

7 、应用层

 

四、 TCP/IP 参考模型

1 、应用层

2 、传输层

3 、网络互联层

4 、主机 -- 网络层

 

ip 协议位于网络互联层,用 IP 地址标识网络上的各个主机, IP 协议把数据分成若干数据包,然后为这些数据包确定合适的路由。路由是指把数据从源主机发送给目标主机的路径

 

TCP 协议位于传输层,保证两个进程之间可靠的传输数据。每当两个进程之间进行通信,就会建立一个 TCP 连接。 TCP 协议用端口来标识 TCP 连接的两个断点。

 

UDP 协议位于传输层。

 

 

五、 TCP UDP 协议的区别

 

TCP 协议是面向连接的、可靠的协议:它将源主机发出的字节流无差错的发送到互联网上的目标主机。在发送端, TCP 协议负责把上层传送下来的数据分成报文段传递给下层。在接收端, TCP 协议负责把收到的报文进行重组后递交给上层。 TCP 协议还要处理端到端的流量控制,已避免接收速度缓慢的接收方没有足够的缓冲区来接收发送放发送的大量数据。

FTP HTTP Telenet 建立在 TCP 协议基础上。

 

 

UDP 协议是一个不可靠的、无连接的协议,主要适用于不需要对报文进行排序和流量控制的场合。 UDP 不能保证数据报的接收顺序和发送顺序相同,甚至不能保证他们是否能够全部到达主机。 -----SNMP DNS 协议建立在 UDP 基础上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值