博客
关于我
Java 网络编程
阅读量:340 次
发布时间:2019-03-03

本文共 1808 字,大约阅读时间需要 6 分钟。

网络编程入门

网络编程,又被称为套接字编程,是计算机网络中实现进程间通信的重要技术。与网站编程不同,网络编程通过套接字来实现数据的传输和接收。

计算机网络的基础知识

计算机网络是指将地理位置不同的多台计算机及其外部设备通过通信线路连接起来,并通过网络操作系统和网络通信协议实现资源共享和信息传递的系统。

计算机网络的主要功能

  • 资源共享:多个用户可以共享一个服务器的资源。
  • 信息传输与集中处理:通过网络将数据集中处理,提高效率。
  • 均衡负荷与分布处理:网络可以分布处理任务,提高系统的负载均衡能力。
  • 综合信息服务:提供WWW、ISDN等综合业务服务。
  • 计算机网络的三高问题

    高并发、高性能、高可用性是计算机网络面对现代应用的重要挑战。

    计算机网络的分类

  • 局域网(LAN):最常见的网络类型,如企业内网。
  • 城域网:覆盖城市范围的网络。
  • 广域网:连接多个城域网的网络。
  • 互联网:全球范围内的网络。
  • 网络通信协议

    在网络中实现通信必须有一些约定,这些约定就是通信协议。常见的网络通信协议有TCP/IP、IPX/SPX、NetBEUI等。

    TCP/IP协议

    TCP/IP协议是Internet的基础协议,它定义了数据如何在计算机之间传输。TCP/IP协议分为四层:

  • 应用层:负责应用程序的协议,如HTTP、FTP。
  • 传输层:负责数据的传输,如TCP和UDP协议。
  • 网络层:负责数据的路由和传输。
  • 链路层:负责物理传输的实现。
  • TCP/IP协议的核心是网络层,它负责将数据分组并发送到目标计算机或网络。

    通信协议的分层思想

    通信协议分层是为了将复杂的协议分解为简单的部分,便于系统的开发和扩展。分层的主要原因包括:

  • 模块化设计:每一层有明确的职责。
  • 易于扩展:新增功能时只需修改特定层次的协议。
  • 提高可靠性:通过分层的协议层次,实现数据的可靠传输。
  • 通信协议的分层模型

    TCP/IP协议的分层模型包括四层:

  • 应用层:负责应用程序的通信需求。
  • 传输层:负责数据的传输和错误控制。
  • 网络层:负责数据的路由和分组。
  • 链路层:负责数据的物理传输。
  • 端口与套接字

    在网络编程中,端口号用于区分一台计算机上运行的多个网络应用程序。一个计算机上最多有65536个端口号,端口号分为:

  • 公有端口(0-1023):如HTTP(80)、FTP(21)等。
  • 程序注册端口(1024-49151):如Tomcat(8080)、MySQL(3306)等。
  • 动态私有端口(49152-65535):用于开发和测试。
  • 在Java中,InetSocketAddress类用于表示IP地址和端口号的结合。

    TCP和UDP网络编程

    TCP和UDP是Java中用于网络编程的核心协议。

    TCP网络编程

    TCP是面向连接的协议,通信前需要建立逻辑连接,确保数据可靠传输。TCP通信分为客户端和服务端:

  • 客户端:主动连接服务器。
  • 服务端:等待客户端的连接。
  • Java中,Socket类用于客户端,ServerSocket类用于服务端。

    UDP网络编程

    UDP是无连接的协议,数据传输速度快但不可靠。Java中,DatagramSocketDatagramPacket类用于实现UDP通信。

    URL与资源定位

    URL(Uniform Resource Locator)是Internet上资源的定位符,包含协议、主机名、端口号、文件名、片段名和参数等。

    URL的格式

    URL格式为:

    <传输协议>
    ://
    <主机名>
    :[
    <端口号>
    ]/
    <文件名>
    #
    <片段名>
    ?
    <参数列表>

    URL类

    Java中,URL类用于解析和操作URL地址。常用的方法包括:

  • getProtocol():获取协议名。
  • getHost():获取主机名。
  • getPort():获取端口号。
  • getPath():获取文件路径。
  • getQuery():获取查询参数。
  • 通过URLConnection类,可以与URL相关的远程资源建立连接,并获取输入流进行数据读取。

    总结

    网络编程是实现计算机之间数据传输的重要技术。通过理解TCP/IP协议、掌握套接字编程,以及利用Java中的网络API,可以开发出高效的网络应用程序。无论是使用可靠的TCP协议还是高效的UDP协议,都可以满足不同场景的需求。

    转载地址:http://tkwm.baihongyu.com/

    你可能感兴趣的文章
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>
    Mysql 表分区
    查看>>
    mysql 表的操作
    查看>>
    mysql 视图,视图更新删除
    查看>>
    MySQL 触发器
    查看>>
    mysql 让所有IP访问数据库
    查看>>
    mysql 记录的增删改查
    查看>>
    MySQL 设置数据库的隔离级别
    查看>>
    MySQL 证明为什么用limit时,offset很大会影响性能
    查看>>
    Mysql 语句操作索引SQL语句
    查看>>
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    查看>>
    MySQL 调优/优化的 101 个建议!
    查看>>
    mysql 转义字符用法_MySql 转义字符的使用说明
    查看>>
    mysql 输入密码秒退
    查看>>
    mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
    查看>>