Java学习笔记(9)--网络编程

Java中的网络编程中详细介绍了如何使用UDP和TCP建立网络连接和通信,这是不同与浏览器使用的http协议的。
在这里插入图片描述

基础

ip地址:定位一台主机
端口:定位一台主机上的某一个软件,同一个协议端口不能重复,不同协议端口可以相同,但最好不要
UDP协议:无连接,不保证可靠性,像寄快递一样,重点在包裹上
TCP协议:保持连接的协议,先建立连接,用一条管道连接两端,这条管道像是一条路,有两个不同的方向,所以两端都可以发送和接收信息

UDP

使用到的类:DatagramPacket,DatagramSocket,InetSocketAddress
DatagramPacket:一个包裹着信息的类,包含一个字节数组,一个地址信息,字节数组就是要发送的主要信息,地址就是要到达的主机和端口
DatagramSocket:相当于发送和接受信息包裹的快递员,可以发送Packet,也可以接收它,是阻塞式的,如果没有包裹就一直等待包裹的到来
InetSocketAddress:一个地址类,继承了SocketAddress,在DatagramPacket的构造器中有使用
使用方法:
发送端:

        byte[] datas =new String("today is a good day").getBytes();
        DatagramPacket dp=new DatagramPacket(datas,datas.length,new InetSocketAddress("localhost",9999));
		DatagramSocket ds=new DatagramSocket(8888);
		ds.send(dp);

接收端:

        byte[] datas = new byte[1024];
		DatagramPacket dp = new DatagramPacket(datas, datas.length);
		DatagramSocket ds = new DatagramSocket(9999);
		ds.receive(dp);

在实际使用时,如果想要达到双方不受限制的沟通,需要开启多个线程,两个人沟通就要四个线程,每人有一个接收线程和发送线程

TCP

TCP协议与UDP不同的是TCP协议分为客户端与服务器端,UDP协议两端是完全平等的,TCP中的服务器端要接收来自多个客户端的请求,一般情况下会给每一个客户端分配一个线程
使用到的类:Socket ,ServerSocket
Socket :Socket的作用是与服务器端建立连接,只要成功构建一个Socket 类的对象,就实现了与服务器的连接。可以将Socket理解为服务器与客户端的一条通路,可以返回输入输出流。
ServerSocket:ServerSocket的一个对象就是一个服务器,可以响应客户端的连接请求,但它只能同一时间保持与一个客户端的连接,所以需要在每一个客户端连接之后,将这个来连接交给一个新线程来执行
使用方法
服务器端:未使用多线程

ServerSocket server = new ServerSocket(4567);
Socket client = server.accept();//阻塞式的方法,等待客户端的连接
private DataOutputStream bo = new DataOutputStream(client.getOutputStream());
private DataInputStream bs = new DataInputStream(client.getInputStream());

客户端:

Socket client = new Socket("localhost", 4567);
DataOutputStream bo = new DataOutputStream(client.getOutputStream());
DataInputStream bs = new DataInputStream(client.getInputStream());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值