JAVA学习——网络编程

一、网络编程

网络通信是在网路实现两台或多台计算机的通信

(一)、网络协议

1、IP协议(Internet Protocol)

Internet网采用的协议是TCP/IP协议,在网络上每台计算机都有自己的IP地址,一个IP地址就代表一台计算机,IP地址是网络通信的基础

2、TCP/UDP协议

(1)UDP(User Datagram Protocol ,用户数据报协议)

UDP是无连接通信协议,两台计算机无需连接既可以传输数据,但是无法保证数据的安全,但是可以广播数据内容

(2)TCP(Transmission Control Protocol,传输控制协议)

TCP协议是一种以固定连线为基础的协议,就是两台计算机要相互确认之后才可以传输数据。TCP协议可以保证数据一定可以准确送达目的,保证数据的安全

(二)UDP程序设计

1.UDP程序的发送端

用到的类
(1)java.net.DatagramPacket 将数据打包
(2)java.net.DatagramSocket 将数据包送出去
步骤方法:
1.创建DatagramPacket对象将数据打包,
2.创建DatagramSocket
3.调用DatagramSocket中的send方法,发送数据
4.关闭资源
实现代码

public class UDPSendDome {
 public static void main(String[] args) throws IOException{
  //创建byte数组装发送数据
  byte[] data = "你好UDP".getBytes();
  //创建DatagramPacket对象绑定发送数据
  DatagramPacket dp = new DatagramPacket(data, data.length,InetAddress.getByName("127.0.0.1"),8848);
  //创建DatagramSocket对象发送数据
  DatagramSocket ds = new DatagramSocket();
  //调用send方法发送数据
  ds.send(dp);
  ds.close();
 }
}

2.UDP的接收端

类与发送端相同
步骤:
1.建立字节数组,接收传输的数据
2.建立DatagramPacket对象,绑定接收的字节数组和接收长度
DatagramPacket(byte[] buf, int length) 构造 DatagramPacket,用来接收长度为 length 的数据包
3.创建DatagramSocket对象
DatagramSocket(int port) 创建数据报套接字并将其绑定到本地主机上的指定端口。
4.拆包
发送的IP地址
DatagramPacket中的方法getAddress()
发送端的端口号
DatagramPacket中的方法getPort()
发送的数据长度
DatagramPacket中的方法getLength()
5.关闭资源
实现代码

public static void main(String[] args) throws IOException{
  //创建一个用于接收的数组
  byte[] data = new byte[1024];
  //创建接收数据对象
  DatagramPacket dp = new DatagramPacket(data, data.length);
  //创建接收数据包的对象,并绑定端口号
  DatagramSocket ds = new DatagramSocket(8848);
  //调用方法receive接收数据
  ds.receive(dp);
  //获取发送的IP地址
  String ip = dp.getAddress().getHostAddress();
  //获取发送端的端口号
  int port = dp.getPort();
  //获取发送数据的长度
  int length = dp.getLength();
  System.out.println(new String(data,0,length)+"---"+ip+"---"+port);
  //关闭资源
  ds.close();

(三)、TCP程序设计

TCP程序分为客户端与服务器,主要通过ServerSocket与Socket两个类来实现

1.服务器

实现TCP网络连接客户端

  • java.net.serversocket
  • 构造方法:
  • ServerSocket(int port) 绑定一个端口号
  • 获取客户端的套接字对象
  • Socket accept() 侦听并接受到此套接字的连接。
  • 然后采用Socket中的IO流方法实现数据的传输

2.客户端

实现TCP网络连接

  • 客户端的实现采用java.net.socket
  • 构造方法:
  • Socket(String host , int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。
  • 通过Socket中的IO流方法实现数据的上传与下载
  • OutputStream getOutputstream() 返回此套接字的输出流。数据上传
  • InputStream getInputStream() 返回此套接字的输入流。数据下载

TCP协议中数据传输主要通过Socket类中方法所获得的IO流来实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值