java网络编程

发布时间 2023-12-20 16:03:30作者: 搬砖滴

一、网络编程入门

1、网络编程概述

 

2、网络编程的三要素

 

3、IP地址 

 InetAddress类

示例:

 

4、端口

5、协议

 

 

二、UDP通信程序

1、UDP通信原理

2、UDP发送数据

 示例:

package com.itbianma01;

import java.io.IOException;
import java.net.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        //创建发送端的Socket对象
        DatagramSocket ds = new DatagramSocket();
        //创建数据,并将数据打包
        byte[] bys = "hello,我来了".getBytes();
        DatagramPacket db = new DatagramPacket(bys, bys.length, InetAddress.getByName("192.168.6.52"), 10086);
        //发送数据
        ds.send(db);
        //关闭发送端
        ds.close();
    }
}

 

3、UDP接收数据

示例:

package com.itbianma01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class ReceiveDemo {
    public static void main(String[] args) throws IOException {
        //创建接收端的Socket对象
        //DatagramSocket(int port) 构造函数将绑定到本地主机上的指定端口
        DatagramSocket ds = new DatagramSocket(10086);
        //创建一个数据包,用于接收数据
        byte[] bys = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bys, bys.length);
        //调用DatagramSocket对象的方法接收数据
        ds.receive(dp);
        //解析数据包,并把数据在控制台显示
        byte[] datas = dp.getData();
        int len=dp.getLength();
        String dataString = new String(datas,0,len);
        System.out.println("数据是:" + dataString);
        ds.close();
    }
}

 

三、TCP通信程序

1、TCP通信原理

 

2、TCP发送数据

示例:

package com.itbianma02;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //创建客户端的Socket对象
        Socket s = new Socket("192.168.6.52", 10000);
        //获取输出流,写数据
        OutputStream os= s.getOutputStream();
        os.write("hello,我来了".getBytes());
        s.close();
    }
}

 

3、TCP接收数据 

示例: 

package com.itbianma02;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo {
    public static void main(String[] args) throws IOException {
        //创建服务端的Socket对象
        ServerSocket ss = new ServerSocket(10001);
        //接收数据
        Socket s = ss.accept();
        //获取输入流,读数据,并把数据显示在控制台
        InputStream is = s.getInputStream();
        byte[] bys = new byte[1024];
        int len = is.read(bys);
        String data = new String(bys, 0, len);
        System.out.println("数据是:" + data);
        //释放资源
        s.close();
        ss.close();
    }
}

 

四、TCP通信实例

 

 客户端:

 

服务端: