首页 > 数据库 >GO TCP代理(可代理SQLSERVER\MYSQL\ORCALE)

GO TCP代理(可代理SQLSERVER\MYSQL\ORCALE)

时间:2023-12-13 20:45:33浏览次数:40  
标签:remote log err nil SQLSERVER 代理 TCP client Printf

用nginx代理不知道为什么内网能用,外网用不了,改用go写个代理临时用下,直接上代码

 

package main

import (
	"fmt"
	"io"
	"log"
	"net"
)

var addr string = "0.0.0.0:51415"  //代理服务端口
var dest_addr string = "192.168.2.120:1433"  //目标地址

func main() {
	defer func() {
		if err := recover(); err != nil {
			log.Println("捕获异常并恢复,异常是:", err)
		}
	}()

	listener, err := net.Listen("tcp", addr)
	if err != nil {
		log.Printf("Failed to start listener: %s", err)
		return
	}
	defer listener.Close()

	fmt.Println("Proxy server is listening on ", addr)

	for {
		client, err := listener.Accept()
		if err != nil {
			log.Printf("Failed to accept client connection: %s", err)
			continue
		}

		go handleClient(client, dest_addr) 
	}
}

func handleClient(client net.Conn, remoteAddr string) {
	remote, err := net.Dial("tcp", remoteAddr)
	if err != nil {
		log.Printf("Failed to connect to remote server: %s", err)
		client.Close()
		return
	}

	go func() {

		_, err := io.Copy(remote, client)
		if err != nil {
			log.Printf("Error copying from client to remote: %s", err)
		}
	}()

	_, err = io.Copy(client, remote)
	if err != nil {
		log.Printf("Error copying from remote to client: %s", err)
	}

	remote.Close()
	client.Close()
}

  

标签:remote,log,err,nil,SQLSERVER,代理,TCP,client,Printf
From: https://www.cnblogs.com/agfox123/p/17899876.html

相关文章

  • TCP简单的客户端代码(C语言)
    1#include<stdio.h>2#include<unistd.h>3#include<sys/socket.h>4#include<netinet/in.h>5#include<arpa/inet.h>6intmain(intargc,charconst*argv[])7{8//1.创建套接字(TCP)9intsockfd=socket(AF_......
  • TCP详解
    1.TCP介绍TCP是面向连接的、可靠的、基于字节流的传输层通信协议。2.TCP头格式源端口号/目的端口号序号解决包乱序问题确认序列目的是确认发出去对方是否有收到。如果没有收到就应该重新发送,直到送达,这个是为了解决丢包的问题。首部长度表示TCP首部有多少个(4字节)的......
  • 大数据企业怎样使用IP代理进行数据抓取
    前言大数据企业通常需要从各种网站和在线平台上进行数据抓取和数据挖掘。然而,许多网站限制了对其内容的访问,使用IP代理是一种常见的解决方案。在本文中,我将介绍大数据企业如何使用IP代理进行数据抓取,并提供相应的代码示例。一、什么是IP代理IP代理是一种允许用户通过第三方服务器......
  • 梅见们要靠“年轻化”突围,但代理商们面对新酒饮还需冷静
    作者|kinki沉寂了三年之后,今年酒行业再度热闹了起来,大大小小的展会接连落地,各大酒企都在忙着探索新模式、处理客情、选品招商……想要将过去三年的业绩追回来。对于酒行业的代理商而言,如何借着积压已久的消费热情“杀出重围”,将成为今明两年的头等大事,当前酒业从生产到市场都进入......
  • 代理模式
    代理模式,有两个角色,一个是被代理者,一个是代理,代理其实就是生活中的中介,但是代理者可以在原本有的操作上面添加一些自己的操作或动作。这里代码上有两个重要的点,一个是代理者会也会继承或者实现被代理者,第二是代理者的构造函数会有一个类型为被代理者的参数,代码示例如下: packag......
  • SQLServer数据库JDBC连接串参数的简单学习
    SQLServer数据库JDBC连接串参数的简单学习背景前段时间一直跟同事一起处理SQLServer比其他数据库的deadlock更多的问题.涉及到了几个驱动的参数.想着问题基本上告一段落,将这一块的情况总结一下.便于后续遇到问题时的快速处理.关于参数现阶段的字符连接串为:jdbc:s......
  • Spring AOP中的不同类型的自动代理实现方式:BeanNameAutoProxyCreator DefaultAdvisorA
    “BeanNameAutoProxyCreator”、“DefaultAdvisorAutoProxyCreator”和“Metadataautoproxying”是SpringAOP中的不同类型的自动代理实现方式。BeanNameAutoProxyCreator:BeanNameAutoProxyCreator是一个自动代理创建器,它根据bean的名称进行自动代理。在配置中,你可以指定一组目......
  • TCP连接断开:为什么要挥手四次
    本文分享自华为云社区《解密TCP连接断开:四次挥手的奥秘和数据传输的安全》,作者:努力的小雨。TCP连接断开在当今数字化时代,互联网已经成为了人们生活中不可或缺的一部分。而在互联网的基础之上,TCP协议扮演着关键的角色,它负责着数据在网络中的可靠传输。在TCP连接的建立过程中,我......
  • 通过PowerShellPlus示例脚本学习PowerShell之-输出SQLServer服务属性
    ##=====================================================================##Title:Get-MSSQL-ServerAttrib-Csv##Description:ConnecttoSQLServerandoutputserverattributestoCSV##Author:Idera##Date:1/28/2009##Input......
  • Sqlserver镜像高可用搭建
    1.安装前准备系统相同数据库软件版本补丁相同数据库目录相同数据库恢复模式为完整主备可以ping通,可以相互通过SMSS登录对方2.创建证书2.1.主服务器和镜像服务器创建主密钥USEmasterGOCREATEMASTERKEYENCRYPTIONBYPASSWORD='Pa$$w0rd';--删除主密钥USEma......