网络编程入门

这篇具有很好参考价值的文章主要介绍了网络编程入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 软件结构
  1. cs架构 (客户端服务器架构)
  2. bs架构 (浏览器服务器架构)
  • 网络通信协议:在同一个网络中进行通信的计算机需要遵守的规范
  1. TCP/IP 传输控制协议/因特网互联协议,是因特网最基本、最广泛的协议,它定义了计算机如何连接互联网,以及数据如何在他们之间传输的标准。
  • 协议分类
  1. UDP
    • 用户数据包协议,UDP是无协议通信协议,在数据传输时,数据的发送端和接收端不需要建立逻辑连接。
    • 消耗资源少、效率高,但是由于UDP是面向无连接的,所以不能保证数据的完整性,并且数据被限制在64kb之内,超过这个限制就不能发送了。
  2. TCP
    • 传输控制协议,是一种面向连接的协议,在传输之前,发送端和接收端先进行逻辑连接,然后再传送数据,提供了两台计算机之间的可靠无差错的数据传输。
    • 三次握手,客户端和服务器在进行数据传输之前首先要建立连接,连接是通过三次握手来建立的,第一次握手是客户端向服务器发送连接请求,等待服务器确认;第二次握手是服务器向客户端发送一个响应,通知客户端收到了连接请求;第三次握手是客户端再次向服务器发送确认信息,确认连接。
  • 网络编程三要素
  1. 协议
  2. IP地址
    • 互联网协议地址,IP是一个计算机在网络上的编号
    • 包括IPV4和IPV6
    • IPV4是一个32位的二进制数,被分为四个字节
    • IPV4是一个128位地址长度的ip,每16位一组,分为8组十六进制数,它是为了解决网络地址资源不够的问题。
  3. 端口号
  • TCP通信程序:TCp通信能实现两台计算机之间的通信,严格区分客户端跟服务器。

  • TCP客户端实现:向服务器发送连接请求,给服务器发送数据,读取服务器返回的数据

  1. Java.net.Socket 实现了客户端套接字,套接字是两台计算机连接的端点,是包含了ip地址和端口号的网络单位。

  2. 构造方法:Socket(String host,int port) 创建一个套接字并将其连接到指定的主机的指定的端口上,其中host是ip,port是端口

  3. 成员方法:OutputStream getOutputStream() 返回此套接字的输出流对象;InputStream getInputStream() 返回此套接字的输入流对象; void close() 关闭流对象

  4. 实现步骤:

    • 创建一个客户端对象Socket,构造方法中绑定ip和端口

    • 使用Socket对象中的方法getOutputStream() 得到这个Socket对象的网络输出流

    • 使用得到的网络输出流对象中的方法write,向服务器发送数据

    • 使用getInputStream() 方法得到这个Socket对象的网络输入流

    • 使用得到的网络输入流对象中的方法read读取服务器发送的数据

    • 释放资源文章来源地址https://www.toymoban.com/news/detail-624241.html

    • 需要注意的是,客户端与服务器的通信必须要使用Socket产生的流对象进行写数据,不能自己创建流对象;因为客户端需要先与服务器进行三次握手,所以客户端发起连接之前需要先保证服务器存在并且开启、端口号没有被占用。

      import java.io.IOException;
      import java.io.InputStream;
      import java.io.OutputStream;
      import java.net.Socket;
      
      public class SocketClient {
          public static void main(String[] args) throws IOException {
              Socket socket=new Socket("127.0.0.1",8888);
              OutputStream os=socket.getOutputStream();
              os.write("hello,服务器".getBytes());
              InputStream is= socket.getInputStream();
              byte[] bytes=new byte[1024];
              int len=is.read(bytes);
              System.out.println(new String(bytes,0,len));
              socket.close();
          }
      }
      
      
  • TCP服务端的实现:接收客户端的请求,并且给客户端发送数据
  1. Java.net.ServerSocket实现了服务器套接字

  2. 构造方法:ServerSocket(int port) 创建绑定到特定端口的服务器套接字

  3. 成员方法:Socket accept() 监听并接受到此服务器的连接

  4. 实现步骤:

    • 创建服务器ServerSocket对象和绑定系统的端口

    • 使用ServerSocket的accept方法获取请求连接的客户端Socket对象

    • 使用Socket对象的getInpurStream对象获取网络字节输入流InputStream对象

    • 使用字节输入流对象的read方法读取客户端发送的数据

    • 使用网络字节输出流getOutputStream对象获取字节输出流OuputStream

    • 使用网络字节输出流给客户端发送信息

    • 释放资源

      import java.io.IOException;
      import java.io.InputStream;
      import java.io.OutputStream;
      import java.net.ServerSocket;
      import java.net.Socket;
      
      public class SocketServer {
          public static void main(String[] args) throws IOException {
              ServerSocket server=new ServerSocket(8888);
              Socket socket=server.accept();
              InputStream is=socket.getInputStream();
              byte[] bytes=new byte[1024];
              int len=is.read(bytes);
              System.out.println(new String(bytes,0,len));
              OutputStream os= socket.getOutputStream();
              os.write("收到".getBytes());
              socket.close();
              server.close();
      
          }
      }
      
      

到了这里,关于网络编程入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络技术与JAVA网络编程UDP编程-----JAVA入门基础教程-----计算机网络经典

    import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.*; public class UDP { public static void main(String[] args) { DatagramSocket datagramSocket = null; try { datagramSocket = new DatagramSocket(); InetAddress inetAddress = InetAddress.getByName(\\\"127.0.0.1\\\"); int port = 9090; byte[] byte

    2024年02月15日
    浏览(53)
  • 快速入门java网络编程基础------Nio

    哔哩哔哩黑马程序员 netty实战视频 NIO(New I/O)是Java中提供的一种基于通道和缓冲区的I/O(Input/Output)模型。它是相对于传统的IO(InputStream和OutputStream)模型而言的新型I/O模型。NIO的主要特点包括: 1.通道与缓冲区: 2.NIO引入了通道(Channel)和缓冲区(Buffer)的概念。通道

    2024年01月20日
    浏览(55)
  • Java面向对象程序开发——网络编程入门知识

    ​ C/S结构 :client/sever是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :browser/sever是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 Web应用系统开发的两种流行架构 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一

    2024年02月12日
    浏览(53)
  • Java基础学习(17)网络编程

    解释: 在网络通信协议下,不同计算机上运行的程序,进行的数据传输 应用场景 : 即时通信、网游对战、金融证券、国际贸易、邮件、等等 不管是什么场景,都是计算机跟计算机之间通过网络进行 数据传输 Java中可以使用 java.net 包下的技术轻松开发出常见的网络应用程序

    2024年02月05日
    浏览(75)
  • 计算机网络技术与JAVA网络编程手写Socket聊天室-----JAVA入门基础教程-----计算机网络经典

    import java.io.*; import java.net.Socket; import java.util.Scanner; public class ChatClient { public static void main(String[] args) { try { Socket socket = new Socket(\\\"127.0.0.1\\\",9090); new Thread(new Runnable() { @Override public void run() { InputStream inputStream = null; while(true) { try { inputStream = socket.getInputStream(); } catch (IOException e)

    2024年02月15日
    浏览(61)
  • JAVA学习-网络编程.Java11标准化的HTTP Client

            Java 11引入了标准化的HTTP Client,它提供了一种现代化、灵活且易于使用的方式来进行HTTP通信。下面是关于Java 11标准化的HTTP Client的概述以及与其他比较和高级应用的说明:         Java 11标准化的HTTP Client是一种替代HttpURLConnection的新的HTTP客户端库。它提供了更

    2024年04月09日
    浏览(38)
  • Java-Java基础学习(2)-网络编程-TCP-UDP

    2.1. 通信协议 TCP、UDP对比 TCP 打电话 连接,稳定 三次握手,四次挥手 客户端、服务端 传输完成,释放连接,效率低 UDP 发短信 不连接,不稳定 客户端,服务端,没有明确的界限 不管有没有准备好,都可以发给你 导弹 DDOS:洪水供给!(饱和攻击) 2.2. Tcp上传测试 总结:

    2024年04月09日
    浏览(47)
  • Java网络编程 - 网络编程介绍 - 网络通信三要素

    什么是网络编程 ? 网络编程可以让程序与网络上的其他设备中的程序进行数据交互。 网络编程基本模式 : 常见的通信模式有如下2种形式:Client-Server( CS: 客户端与服务器模式 ) 、 Browser/Server( BS: 浏览器与服务器模式 ) Client-Server(CS)模式 Browser/Server(BS)模式 实现网络编程关键的三

    2024年02月02日
    浏览(55)
  • Java 网络编程 —— 非阻塞式编程

    在生活中,最常见的阻塞现象是公路上汽车的堵塞。汽车在公路上快速行驶,如果前方交通受阻,就只好停下来等待,等到公路顺畅,才能恢复行驶。 线程在运行中也会因为某些原因而阻塞。所有处于阻塞状态的线程的共同特征:放弃 CPU,暂停运行,只有等到导致阻塞的原

    2024年02月04日
    浏览(51)
  • Java网络编程(一)基本网络概念

            网络(network) 是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络通常用线缆连接,数据位转换为电磁波,通过线缆移动。不过,无线网络会通过无线电波传输数据,许多长距离的传输现在会用通过玻璃纤维发送可见光的光纤电缆来完成。传输数

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包