Java网络编程

目录

1.网络编程入门

2.UDP通信程序

3.TCP通信程序

1.网络编程入门

 

 public static void main(String[] args) throws UnknownHostException {

        InetAddress byAddress = InetAddress.getByName("justlikeyou");
        System.out.println(byAddress.getHostName());
        System.out.println(byAddress.getHostAddress());

端口:应用程序在设备中唯一的标识。

端口号:用两个字节表示的整数,它的取值范围是0~65535。  

其中0~1023之间的端口号用于一些知名的网络服务或者应用。        

我们自己使用1024以上的端口号就可以了。 注意:一个端口号只能被一个应用程序使用。

协议:计算机网络中,连接和通信的规则被称为网络通信协议

UDP协议 用户数据报协议(User Datagram Protocol) UDP是面向无连接通信协议

 速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据。

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

TCP协议是面向连接的通信协议。      

 速度慢,没有大小限制,数据安全。

2.UDP通信程序

UDP发送数据步骤

  1. 创建发送端的DatagramSocket对象
  2. 创建数据,并把数据打包(DatagramPacket)
  3. 调用DatagramSocket对象的方法发送数据
  4. 释放资源

UDP接收数据步骤

  1. 创建接收端的DatagramSocket对象
  2. 创建一个箱子,用于接收数据
  3. 调用DatagramSocket的方法接收数据并将数据放入箱子中
  4. 解析数据包,并把数据在控制台显示
  5. 释放资源
 public static void main(String[] args) throws IOException {
        DatagramSocket datagramSocket = new DatagramSocket();
        byte[]bytes="hello".getBytes(StandardCharsets.UTF_8);
                DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("justlikeyou"),12345);

        datagramSocket.send(datagramPacket);
        datagramSocket.close();
public static void main(String[] args) throws IOException {

        DatagramSocket datagramSocket = new DatagramSocket(12345);


        byte[] bytes = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);

        datagramSocket.receive(datagramPacket);

        String s = new String(datagramPacket.getData(),0, datagramPacket.getLength());
        System.out.println(s);
        datagramSocket.close();

3.TCP通信程序

 TCP发送数据步骤

  1. 创建客户端的Socket对象(Socket)
  2. 与指定服务端连接 Socket​(String host, int port)
  3. 获取输出流,写数据 OutputStream getOutputStream​()
  4. 释放资源 void close​()

TCP接收数据

  1. 创建服务器端的Socket对象(ServerSocket)
  2. ServerSocket​(int port) 监听客户端连接,返回一个Socket对象
  3. Socket accept​() 获取输入流,读数据,并把数据显示在控制台 InputStream getInputStream​()
  4. 释放资源 void close​()

 public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = new ServerSocket(12345);
        Socket accept = serverSocket.accept();
        InputStream inputStream = accept.getInputStream();
        byte[] bytes = new byte[1024];
        int i = inputStream.read(bytes);
        System.out.println(new String(bytes,0,i));

        accept.close();
  public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1",12345);
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("dfgh".getBytes());
        outputStream.close();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Echo小叮铛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值