网络编程-自学

简介: 未完

socket编程

所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象

socket编程代码

一、概念及流程

提供两台计算机之间的通信,主要用于描述IP和端口

在java中

java.net 包为两种常用的网络协议提供支持:

  • TCP:TCP 代表传输控制协议,允许两个应用程序间的可靠通信。TCP 通常在因特网协议上被使用,这被称为 TCP/IP。
  • UDP: UDP 代表用户数据报协议,一个无连接的允许应用程序间数据包传输的协议。

以下步骤发生在两台电脑使用套接字建立TCP连接时:

  • 服务器实例化一个 ServerSocket 对象,指示通信将产生在哪个端口号;
  • 服务器调用 ServerSocket 类的 accept() 方法。这个方法等待直到一个客户端在给定的端口上连接到服务器;
  • 在服务器等待后,一个客户端实例化一个 Socket 对象,指定服务器名称和连接的端口号;
  • Socket 类的构造函数努力将客户端连接到指定的服务器和端口号。如果通信建立,客户端现在就拥有了一个能和服务器通信的 Socket 对象;
  • 在服务器端,accept() 方法在服务器上返回一个连接到客户端套接字的新的套接字。

在连接建立后,通信可以使用 I/O 流产生。每个套接字都有一个输出流和一个输入流。客户端的输出流连接到服务器端的输入流,客户端的输入流连接到服务器端的输出流。

二、Socket基本操作

  • 连接远程机器
  • 发送、接受数据
  • 关闭连接
  • 绑定端口
  • 监听入站信息
  • 在绑定端口上接受来自远程机器的连接

前三个为socket常用方法,后三个为SeverSocket(服务端开启)常用方法

SeverSocket

服务器开启

构造方法-需要抛异常

常用方法

  1. public int getLocalPort()
    返回此套接字监听的端口
  2. public Socket accept() throws IOException
    监听并接受此套接字的连接
  3. public void setSoTimeout (int timeout)
    通过指定超时值启用/禁用 SO_TIMEOUT(以ms为单位)
  4. public void bind(SocketAddress host, int backlog)
    将 ServerSocket 绑定到特定地址(IP 地址和端口号)

Socket

Socket是可以在两端使用,客户端获取一个Socket实例化对象,而服务器端通过accept方法获取一个Socket对象返回值。

构造方法


常用方法

  1. public InetAddress getInetAddress()
    返回套接字连接的地址
  2. public SocketAddress getRemoteSocketAddress()
    返回此套接字连接的端点地址(未连接返回 null)
  3. public int getLocalPort()
    返回此套接字绑定的本地端口
  4. public int getPort()
    返回此套接字连接的远程端口
  5. public void connect(SocketAddress host, int timeout) throws IOException
    将此套接字连接到服务器,并指定一个超时值
  6. public InputStream getInputStream() throws IOException
    返回此套接字的输入流
  7. public OutputStream getOutputStream() throws IOException
    返回此套接字的输出流
  8. public void close() throws IOException
    关闭此套接字


目录
相关文章
|
7月前
|
SQL 运维 安全
黑客(网络安全)技术自学——高效学习
黑客(网络安全)技术自学——高效学习
87 1
|
5月前
|
安全 Linux 网络安全
自学黑客(网络安全)
【7月更文挑战第18天】
116 5
|
机器学习/深度学习 安全 程序员
《网络安全0-100》自学误区和陷阱
《网络安全0-100》自学误区和陷阱
74 0
《网络安全0-100》自学误区和陷阱
|
分布式计算 Hadoop Linux
hadoop3自学入门笔记(1)——虚拟机安装和网络配置
hadoop3自学入门笔记(1)——虚拟机安装和网络配置
342 0
hadoop3自学入门笔记(1)——虚拟机安装和网络配置
|
网络协议 算法 Java
五分钟自学编程:计算机网络到底应该怎么学?!
原创声明 本文首发于微信公众号【程序员黄小斜】 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 思维导图 简介 上一期我讲到了数据结构怎么学,当时我的学习方法是先看视频,再看书,然后刷一刷基础算法题做巩固。
|
22小时前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
33 17
|
11天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
12天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
35 10