java 网络编程

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。java 网络编程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

1.网络编程绪论

1.1 网络编程概念

1.2 网络编程三要素

2.网络编程实战

2.1 UDP

2.1.1 UDP简介

 2.1.2 UDP实战

2.2 TCP

2.2.1 TCP简介

 2.2.2 TCP实战


1.网络编程绪论

1.1 网络编程概念

在网络通信协议下,不同计算机上运行的程序,进行的数据传输。

常见的软件架构:

C/S(Client/Server)客户端/服务器:在用户本地需要下载并安装客户端程序,在远程有一个服务器端程序。画面可以做的非常精美,用户体验好,需要开发客户端,也需要开发服务端,用户需要下载和更新的时候太麻烦。

B/S(Browser/Server)浏览器/服务器:  只需要一个浏览器,用户通过不同的网址。客户访问不同的服务器。不需要开发客户端,只需要页面+服务端,用户不需要下载,打开浏览器就能使用,
如果应用过大,用户体验受到影响。

1.2 网络编程三要素

IP
设备在网络中的地址,是唯一的标识!
端口号
应用程序在设备中唯一的标识。
协议
数据在网络中传输的规则,常见的协议有UDP、TCP、http、https,ftp。
 

2.网络编程实战

2.1 UDP

2.1.1 UDP简介

UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。UDP的主要特点:
1.UDP是无连接的,减少开销和发送数据之前的时延。
2.UDP使用最大努力交付,即不保证可靠交付。
3.UDP是面向报文的,适合一次性传输少量数据的网络应用。
 

UDP格式

java 网络编程

 2.1.2 UDP实战

=一台电脑发送数据

public class Test {
    public static void main(String[] args) throws IOException {
        InetAddress address = InetAddress.getByName("10.9.6.56");
//        System.out.println(address.getHostName());
//        System.out.println(address.getHostAddress());
        DatagramSocket datagramSocket=new DatagramSocket();
        String msg="hello";
        byte[] bytes = msg.getBytes();
        DatagramPacket datagramPacket=new DatagramPacket(bytes,bytes.length,address,10086);
        datagramSocket.send(datagramPacket);
        datagramSocket.close();
    }
}

一台电脑接收数据

 

public class Test1 {
    public static void main(String[] args) throws IOException {
        DatagramSocket datagramSocket=new DatagramSocket(10086);
        byte[] bytes=new byte[1024];
        DatagramPacket datagramPacket=new DatagramPacket(bytes,bytes.length);
        datagramSocket.receive(datagramPacket);
        byte[] data = datagramPacket.getData();
        InetAddress address = datagramPacket.getAddress();
        int length = datagramPacket.getLength();
        System.out.println(new String(data,0,length));
        System.out.println(address.getHostAddress());
        datagramSocket.close();

    }
}

2.2 TCP

2.2.1 TCP简介

这部分内容摘自王道考研

TCP协议特点如下图:

java 网络编程

 TCP报文段是由TCP首部和TCP数据部分组成,TCP报文段首部格式如下图:

java 网络编程

 TCP三次握手如下图:

java 网络编程

 TCP连接释放四次握手如下图:

java 网络编程

 2.2.2 TCP实战

服务端代码如下;

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

        ServerSocket serverSocket=new ServerSocket(10086);
        Socket accept = serverSocket.accept();
        InputStream inputStream = accept.getInputStream();
        int b;
        while ((b=inputStream.read())!=-1){
            System.out.println((char)b);
        }
        inputStream.close();
        serverSocket.close();
    }
}

客户端代码如下:

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

        Socket socket=new Socket("10.9.6.56",10086);
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("hello".getBytes());
        outputStream.close();
        socket.close();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/196993.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!