golang端口,golang端口转发

本文目录一览:

golang 反向代理实例

首先解释一下反向代理,所谓的反向代理就是代理服务器,充当Web服务器网关的代理服务器。当请求发送到使用反向代理的Web服务器时,他们将先转到反向代理,由该代理将确定是将其路由到制定的Web服务器。

这个程序是将 本地的8086 端口作为代理服务器,代理上篇 golang HTTP实例 里面的8090端口

核心只有一个函数 httputil.NewSingleHostReverseProxy

两个服务同时运行

效果如下:

代理服务器访问 8086端口时候

访问原始的端口8090时候

golang一个端口怎么同时提供http和https

1、首先使用一个公共的端口作为监听,让HTTP和HTTPS服务分别监听在各自的端口上。

2、其次在公共端口服务区分这是HTTP请求还是HTTPS请求。

3、最后各自转发到所服务的监听即可。

Golang 网络编程丝绸之路 – TCP/UDP 地址解析

TL;DR 在使用 Golang 编写 TCP/UDP socket 的时候,第一步做的就是地址解析。

该函数返回的地址包含的信息如下:

TCPAddr 里, IP 既可以是 IPv4 地址,也可以是 IPv6 地址。 Port 就是端口了。 Zone 是 IPv6 本地地址所在的区域。

从返回结果看该函数的参数, network 指 address 的网络类型; address 指要解析的地址,会从中解析出我们想要的 IP , Port 和 Zone 。

从源码中可以看出,参数 network 只能是如下四个值,否则会得到一个错误。

解析过程跟 ResolveTCPAddr 的一样,不过得到的是 *UDPAddr 。

UDPAddr 包含的信息如下:

Golang 端口转发工具

初学go,写一个端口转发工具。很方便的小工具,希望能对大家学习go语言有所帮助。

“`Golang

package main

import(

“fmt”

“io”

“net”

“sync”

)

varlocksync.Mutex

vartrueList[]string

varipstring

varliststring

funcmain(){

ip=”0.0.0.0:888″

server()

}

funcserver(){

fmt.Printf(“Listening%s”,ip)

lis,err:=net.Listen(“tcp”,ip)

iferr!=nil{

fmt.Println(err)

return

}

deferlis.Close()

for{

conn,err:=lis.Accept()

iferr!=nil{

fmt.Println(“建立连接错误:%v\n”,err)

continue

}

fmt.Println(conn.RemoteAddr(),conn.LocalAddr())

gohandle(conn)

}

}

funchandle(sconnnet.Conn){

defersconn.Close()

ip:=”127.0.0.1:8888″

dconn,err:=net.Dial(“tcp”,ip)

iferr!=nil{

fmt.Printf(“连接%v失败:%v\n”,ip,err)

return

}

ExitChan:=make(chanbool,1)

gofunc(sconnnet.Conn,dconnnet.Conn,Exitchanbool){

io.Copy(dconn,sconn)

ExitChan-true

}(sconn,dconn,ExitChan)

gofunc(sconnnet.Conn,dconnnet.Conn,Exitchanbool){

io.Copy(sconn,dconn)

ExitChan-true

}(sconn,dconn,ExitChan)

-ExitChan

dconn.Close()

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/309406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2025-01-04 19:31
下一篇 2025-01-04 19:31

相关推荐

  • 使用Golang调用Python

    在现代软件开发中,多种编程语言的协作是相当普遍的。其中一种使用场景是Golang调用Python,这使得在使用Python库的同时,可以利用Golang的高性能和强大并发能力。这篇…

    编程 2025-04-29
  • 使用Golang创建黑色背景图片的方法

    本文将从多个方面介绍使用Golang创建黑色背景图片的方法。 一、安装必要的代码库和工具 在开始创建黑色背景图片之前,我们需要先安装必要的代码库和工具: go get -u git…

    编程 2025-04-29
  • 两个域名指向同一IP不同端口打开不同网页的实现方法

    本文将从以下几个方面详细阐述两个域名指向同一个IP不同端口打开不同网页的实现方法。 一、域名解析 要实现两个域名指向同一个IP不同端口,首先需要进行域名解析。在域名解析的时候,将这…

    编程 2025-04-28
  • Python监听端口用法介绍

    本文将从Python监听端口的概念入手,详细介绍如何使用Python实现监听端口,并且讲解相关的基础知识。 一、端口及其概念 1、什么是端口? 端口是一种网络协议,它是通过计算机与…

    编程 2025-04-27
  • Mininet开启导致Ryu端口冲突问题:解答

    Mininet是一种网络仿真工具,可以在一个单一主机上开启多个虚拟主机,并模拟各个主机之间的网络连接。而Ryu则是一款高性能轻量级的SDN控制器,其是基于Python实现的,具有灵…

    编程 2025-04-27
  • Huawei MA5262端口聚合

    本文将详细介绍华为MA5262的端口聚合,包括如何配置和使用,以及相关的注意事项。 一、端口聚合简介 端口聚合是将多个物理端口捆绑成一个逻辑端口,从而增加交换机端口带宽和可靠性的技…

    编程 2025-04-25
  • Zookeeper默认端口的详细解析

    一、Zookeeper端口的概念 Zookeeper是一个分布式的协调服务,这意味着它需要在多台服务器之间进行通信。在Zookeeper通信的过程中,需要使用端口来进行标识和传输数…

    编程 2025-04-25
  • 如何查看防火墙开放的端口

    一、使用命令行查看开放端口 在Windows系统中,我们可以使用命令行工具来查看防火墙开放的端口。 netstat -an | find /i “listening” 运行以上命令…

    编程 2025-04-25
  • 1688端口详解

    一、什么是1688端口 1688端口是阿里巴巴公司推出的一种基于Internet的购销平台,这个平台被命名为1688,代表阿里巴巴的核心理念“一路发”,代表着商家们把产品从工厂生产…

    编程 2025-04-24
  • NC命令测试端口详解

    一、NC命令简介 NC命令是一款重要的网络工具,它是一款强大的网络工具,它可以将数据包准确的传输和接收,提供了一种高效的数据传输方式。NC的全称是Netcat,它基于TCP/IP协…

    编程 2025-04-24

发表回复

登录后才能评论