0
点赞
收藏
分享

微信扫一扫

网编简单入门

晚安大世界 2022-04-14 阅读 81
java-ee

网络编程
    概述:在网络通讯协议下,,不同的计算机上运行的程序,可以进行数据传输
    三要素:
        ip地址:设备在网络中的地址,是唯一标识
        端口:应用程序在设备中的唯一的标识
        协议:数据在网络中传输的规则,常见的协议有UDP和TCP协议
    

    ip:全称"互联网协议地址",也称IP地址,是分配给上网设备的数字标签,常见的IP分类有:IPV4和IPV6
        IPV4:32bit(4字节)  11000000101010000000000101000010  难以阅读 =>点分十进制表示法 192.168.1.111
        随着计算机的发展IPV4已经满足不了,一个字节最多标识1-255,一共有四个字节,全球就只能有四十二亿个ip 不能够满足发展
        IPV6 由于计算机的发展,IP需求量的变大,IPV4是有限的,采取128位地址长度,分成8组
            
    常见命令
        InetAddress的使用
            InetAddress:此类标识Internet协议(IP)地址
      

 public class Demo {
    public static void main(String[] args) throws UnknownHostException {
        //static InetAddress getByName(String host)
                //确定主机名称的IP地址
        //String getHostName() 获取此IP地址的主机名
        //String getHostAddress()  返回文本显示中的IP地址
        InetAddress byName = InetAddress.getByName("idea");
        String hostName = byName.getHostName();
        System.out.println("主机名位:"+hostName);
        String hostAddress = byName.getHostAddress();
        System.out.println("主机IP地址位:"+hostAddress);
    }
}

端口: 应用程序在设备中的唯一的标识
    端口号:用两个字节表示的整数,它的取值范围是0-65535
            其中0-1023之间的端口号用于一些知名的网络服务或者应用 
            推荐使用1024以上的端口
            注意:一个端口号只能被一个应用程序使用

协议:计算机网络中,连接和通信的规则被称为网络通信协议
        UDP协议:
            用户数据报协议
            UDP是面向无连接的通信协议,速度快,有大小限制,一次最多发送64KB,数据不安全,易丢失数据
        TCP协议:
            传输控制协议
            TCP协议是面向连接的通讯协议,速度慢,没有大小限制,数据安全

        UDP代码:
        发送端:
        

public class ServerDemo {
    public static void main(String[] args) throws IOException {
        //创建一个码头接收站
        DatagramSocket datagramSocket = new DatagramSocket();
        String s="要发送的数据";
        byte[] bytes=s.getBytes();
        //IP地址
        InetAddress byName = InetAddress.getByName("192.168.200.1");
        //端口号
        int port=1024;
        DatagramPacket ds = new DatagramPacket(bytes, bytes.length, byName, port);
        //发送数据
        datagramSocket.send(ds);
        datagramSocket.close();
    }
}


        接收端
     

   public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //要先运行接收端,在运行发送端
        //如果接收端再启动之后,没有接收到数据,就会一直运行
        DatagramSocket ds = new DatagramSocket(1024);
        byte[] bytes=new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
        ds.receive(dp);
        int length = dp.getLength();
        System.out.println(new String(bytes,0,length));
        ds.close();
    }
}

TCP 
    是一种可靠的通讯协议,他的通讯的两端各建立一个Socket对象,通信之前要保证连接已经建立,通过Socket产生IO流来进行网络通信
    1.创建客户端的Socket对象(Socket)与指定服务端连接
        Socket(String host,int port)
    2.获取输出流,写数据
        OutputStreamgetOutStream()
    3.释放资源    
        void close()
        
  

 public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //创建一个Sokey对象
        Socket socket = new Socket("192.168.200.1",1024);

        //获取一个IO流开始写数据
        OutputStream os = socket.getOutputStream();
        os.write("hello".getBytes());
        //释放资源
        os.close();
        socket.close();
    }
}

    接收数据
        创建服务器端的Socket对象(ServerSocket)
            ServerSocket(int port)
        监听客户但连接,返回一个Socket对象
            Socket accept()
        获取输入流,读数据,并把数据显示再控制台
            InputStream getInputStream()
  

  public class Server {
    public static void main(String[] args) throws IOException {
        //创建Socket对象
        ServerSocket ss=new ServerSocket(8848);
        //等待连接
        Socket accept = ss.accept();
        //获得输入流对象
        InputStream is = accept.getInputStream();
        int b;
        while ((b= is.read())!=-1){
            System.out.println((char)b);
        }
        //释放资源
        is.close();
        ss.close();
    }
}
举报

相关推荐

0 条评论