gostream

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package gostream 允许使用 [DeP2P](https://github.com/dep2p) 流替换 Go 中的标准网络栈。

给定一个 dep2p.Host,gostream 提供 Dial() 和 Listen() 方法,这些方法返回 net.Conn 和 net.Listener 的实现。

与常规的 "host:port" 寻址不同,`gostream` 使用对等点 ID,并且不使用原始 TCP 连接,而是使用 dep2p 的 net.Stream。 这意味着您的连接将利用 DeP2P 的多路由、NAT 穿透和流多路复用功能。

注意,DeP2P 主机不能拨号到自身,因此无法将同一个 Host 同时用作服务器和客户端。

Index

Constants

This section is empty.

Variables

View Source
var Network = "dep2p"

Network 是 gostream 连接使用的地址返回的 "net.Addr.Network()" 名称。 相应地,"net.Addr.String()" 将是一个对等点 ID。

Functions

func Dial

func Dial(ctx context.Context, h host.Host, pid peer.ID, tag protocol.ID) (net.Conn, error)

Dial 使用给定的主机打开到目标地址的流 参数:

  • ctx: 上下文
  • h: dep2p 主机
  • pid: 目标对等点 ID
  • tag: 协议标识

返回:

  • net.Conn: 标准网络连接
  • error: 打开流过程中的错误

func Listen

func Listen(h host.Host, tag protocol.ID, opts ...ListenerOption) (net.Listener, error)

Listen 提供一个标准的 net.Listener,准备接受"连接" 在底层,这些连接是带有给定 protocol.ID 标记的 dep2p 流

参数:

  • h host.Host: dep2p 主机实例
  • tag protocol.ID: 协议标识符
  • opts ...ListenerOption: 监听器选项列表

返回值:

  • net.Listener: 监听器接口
  • error: 错误信息

Types

type ListenerOption

type ListenerOption func(*listener) error

ListenerOption 是监听器选项函数类型 参数:

  • l *listener: 监听器实例

返回值:

  • error: 应用选项时的错误

func IgnoreEOF

func IgnoreEOF() ListenerOption

IgnoreEOF 返回一个设置 ignoreEOF 标志的监听器选项 返回值:

  • ListenerOption: 监听器选项函数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL