博客
关于我
Java中的网络编程入门
阅读量:301 次
发布时间:2019-03-03

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

网络编程与TCP/IP协议

网络编程是指在一定协议下,实现两台计算机之间通信的程序设计。它是计算机网络通信的核心技术之一,广泛应用于Web开发、远程控制、云计算等领域。

软件结构

在网络编程中,软件可以分为客户端与服务器端两种结构:

  • C/S结构(Client/Server结构)

    客户端与服务器端分别运行,客户端向服务器端发送请求,服务器端处理请求并返回结果。

  • B/S结构(Browser/Server结构)

    浏览器作为客户端,向服务器端发送请求,服务器端处理后返回网页资源。

  • 网络通信协议

    网络通信需要遵循一定的规则,这些规则共同构成了网络通信协议。TCP/IP协议是最基础、最广泛的协议之一。

    TCP/IP协议

    TCP/IP协议分为两个部分:

    • TCP(传输控制协议):面向连接的协议,需要三次握手建立连接。
    • IP(互联网协议):用于将数据包从一台计算机发送到另一台计算机。

    TCP/IP协议是国际标准化的协议,几乎覆盖了互联网的所有通信需求。

    网络通信协议的分类

    网络通信协议可根据不同的需求分类。以下是两种常见协议的特点:

  • UDP(用户数据报协议)

    • 无需确认接收端是否存在,不需要接收端反馈。
    • 数据报的大小限制在64KB以内。
    • 适用于对延迟敏感的场景,如音视频传输。
  • TCP(传输控制协议)

    • 面向连接,必须经过三次握手建立连接。
    • 保证数据可靠传输。
    • 适用于对数据完整性要求较高的场景。
  • 网络编程的三要素

    网络编程的实现依赖于以下三要素:

  • 协议

    确定网络通信遵循的规则。

  • IP地址

    用于唯一标识网络中的计算机,IP地址可以是IPv4或IPv6形式。

  • 端口号

    端口号是逻辑上的门户,用于区分不同的应用程序和服务。

  • TCP通信程序

    TCP通信程序分为客户端与服务器端两种角色:

  • 客户端

    主动向服务器发起连接请求,等待服务器响应。

  • 服务器端

    等待客户端的连接请求,处理客户端的数据请求。

  • Java中的TCP通信实现

    在Java中,实现TCP通信程序可以使用以下类:

  • Socket类

    用于客户端连接服务器,创建Socket对象并指定IP地址和端口号。

  • ServerSocket类

    用于服务器端接收客户端连接,创建ServerSocket对象并指定端口号。

  • 服务器端实现

    public class TCPSever {    public static void main(String[] args) throws IOException {        ServerSocket serverSocket = new ServerSocket(8888);        Socket socket = serverSocket.accept();        InputStream inputStream = socket.getInputStream();        byte[] buffer = new byte[1024];        int len = inputStream.read(buffer);        System.out.println(new String(buffer, 0, len));        OutputStream outputStream = socket.getOutputStream();        outputStream.write("收到,谢谢".getBytes());        socket.close();        serverSocket.close();    }}

    客户端实现

    public class TCPClient {    public static void main(String[] args) throws IOException {        Socket socket = new Socket("127.0.0.1", 8888);        OutputStream outputStream = socket.getOutputStream();        outputStream.write("你好服务器".getBytes());        InputStream inputStream = socket.getInputStream();        byte[] buffer = new byte[1024];        int len = inputStream.read(buffer);        System.out.println(new String(buffer, 0, len));        socket.close();    }}

    Java中的Socket和ServerSocket

    Socket类

    • 构造方法:Socket(String host, int port)

      创建一个流套接字并连接到指定主机和端口。

    • 成员方法:

      • OutputStream getOutputStream()
      • InputStream getInputStream()
      • close()

    ServerSocket类

    • 构造方法:ServerSocket(int port)

      创建一个绑定到指定端口的服务器套接字。

    • 成员方法:

      • Socket accept()
      • close()

    通过以上实现,可以轻松构建TCP通信程序,满足不同的网络需求。

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

    你可能感兴趣的文章
    Objective-C实现BreadthFirstSearch广度优先搜索算法(附完整源码)
    查看>>
    Objective-C实现BreadthFirstShortestPath广度优先最短路径算法(附完整源码)
    查看>>
    Objective-C实现bubble sort冒泡排序算法(附完整源码)
    查看>>
    Objective-C实现bucket sort桶排序算法(附完整源码)
    查看>>
    Objective-C实现Burke 抖动算法(附完整源码)
    查看>>
    Objective-C实现Burrows-Wheeler 算法(附完整源码)
    查看>>
    Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
    查看>>
    Objective-C实现calloc函数功能(附完整源码)
    查看>>
    Objective-C实现canny边缘检测算法(附完整源码)
    查看>>
    Objective-C实现cartesianProduct笛卡尔乘积算法(附完整源码)
    查看>>
    Objective-C实现check strong password检查密码强度算法(附完整源码)
    查看>>
    Objective-C实现chudnovsky algorithm楚德诺夫斯基算法(附完整源码)
    查看>>
    Objective-C实现CIC滤波器(附完整源码)
    查看>>
    Objective-C实现circle sort圆形排序算法(附完整源码)
    查看>>
    Objective-C实现CircularQueue循环队列算法(附完整源码)
    查看>>
    Objective-C实现clearBit清除位算法(附完整源码)
    查看>>
    Objective-C实现climbStairs爬楼梯问题算法(附完整源码)
    查看>>
    Objective-C实现cocktail shaker sort鸡尾酒排序算法(附完整源码)
    查看>>
    Objective-C实现cocktailShakerSort鸡尾酒排序算法(附完整源码)
    查看>>
    Objective-C实现CoinChange硬币兑换问题算法(附完整源码)
    查看>>