java基础网络编程

来源:互联网 发布:ubuntu 安装区间 编辑:程序博客网 时间:2024/06/16 14:37


                                                                                            网络编程

 

网络模型

 

网络通信步骤:

  1. 找到对方IP

  2. 数据发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应该程序用数字标识,这些标识称为端口。

  3. 定义通信规则。这个规则称为协议。国际组织定义了通用协议TCP/IP协议

 

常用的传输协议:TCPUDP

 

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

TCP/IP模型:应用层、传输层、网络层、数据链路层、物理层

 

 

网络通信要素

IP地址(InetAddress

        网络中设备的标识

        本地回环地址:127.0.0.1主机:localhost

端口号

        有效端口:0~65535

 

UDP(面向无连接):

        1、将数据及源和目的封装成数据包中,不需要建立连接

        2、数据包最大只能64K

        3、不可靠协议

        4、速度快

 

TCP(必须建立连接)

  1. 建立连接形成数据通道

  2. 在连接中进行大数据传输

  3. 三次握手完成连接,是可靠连接

  4. 必须建立连接,效率稍低

 

Socket是网络服务提供的一种机制

通信两端必须现有socket

 

UDP传输

        DatagramSocket

发送数据步骤:

  1. 建立UdpSocket服务,通过DatagramSocket建立

  2. 提供数据,并将数据封装在数据包中,用DatagramPacket

  3. 通过socket服务,将已有的数据包发送出去,通过send方法

  4. 关闭资源

 

接收数据步骤:

  1. 定义udpsocket服务,使用DatagramSocket要指定端口

  2. 定义数据包,存储数据,使用DatagramPacket

  3. 通过服务的receive方法将收到的数据存入数据包,阻塞式方法

  4. 通过数据包的方法获取其中的数据调用getData()方法

  5. 关闭资源 close()方法

 

聊天软件用多线程技术

 

 

TCP传输

  1. TCP分客户端和服务端

  2. 客服端对应的对象是soket服务端对应的对象是ServerSocket

 

客户端步骤:

  1. 创建Socket服务,并指定要连接的主机和端口 Socket

  2. 发送数据,应该获取socket流中的输出流OutputStream

 

服务端思路:

  1. 建立服务端的socket服务,SeverSocket(),并监听一个端口

  2. 获取连接过来的客户端对象,通过ServerSocketaccept方法,没有连接就会等,所以这个方法是阻塞式的。

  3. 客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客服端对象的读取流来读取数据打印到控制台上

  4. 关闭服务端(可选)

 

服务端步骤:

  1. 建立服务端socket服务,并监听一个端口ServerSocket accept()方法

  2. 通过accept()方法获取连接过来的客户端对象;

  3. 获取客户端发过来的数据,那么要使用客户端对象的读取流来读取数据

 

在客户端和服务端实例中要注意,判断字符的结束标记

0 0