国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Golang - golang 實(shí)現(xiàn)tcp轉(zhuǎn)發(fā)代理的方法

golang 實(shí)現(xiàn)tcp轉(zhuǎn)發(fā)代理的方法

2020-05-27 10:25JieLinDee Golang

今天小編就為大家分享一篇golang 實(shí)現(xiàn)tcp轉(zhuǎn)發(fā)代理的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,直接上代碼吧:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package main
 
import (
    "flag"
    "fmt"
    "io"
    "net"
    "os"
    "strings"
    "sync"
)
 
var lock sync.Mutex
var trueList []string
var ip string
var list string
 
func main() {
    flag.StringVar(&ip, "l", ":9897", "-l=0.0.0.0:9897 指定服務(wù)監(jiān)聽的端口")
    flag.StringVar(&list, "d", "127.0.0.1:1789,127.0.0.1:1788", "-d=127.0.0.1:1789,127.0.0.1:1788 指定后端的IP和端口,多個(gè)用','隔開")
    flag.Parse()
    trueList = strings.Split(list, ",")
    if len(trueList) <= 0 {
        fmt.Println("后端IP和端口不能空,或者無效")
        os.Exit(1)
    }
    server()
}
 
func server() {
    lis, err := net.Listen("tcp", ip)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer lis.Close()
    for {
        conn, err := lis.Accept()
        if err != nil {
            fmt.Println("建立連接錯(cuò)誤:%v\n", err)
            continue
        }
        fmt.Println(conn.RemoteAddr(), conn.LocalAddr())
        go handle(conn)
    }
}
 
func handle(sconn net.Conn) {
    defer sconn.Close()
    ip, ok := getIP()
    if !ok {
        return
    }
    dconn, err := net.Dial("tcp", ip)
    if err != nil {
        fmt.Printf("連接%v失敗:%v\n", ip, err)
        return
    }
    ExitChan := make(chan bool, 1)
    go func(sconn net.Conn, dconn net.Conn, Exit chan bool) {
        _, err := io.Copy(dconn, sconn)
        fmt.Printf("往%v發(fā)送數(shù)據(jù)失敗:%v\n", ip, err)
        ExitChan <- true
    }(sconn, dconn, ExitChan)
    go func(sconn net.Conn, dconn net.Conn, Exit chan bool) {
        _, err := io.Copy(sconn, dconn)
        fmt.Printf("從%v接收數(shù)據(jù)失敗:%v\n", ip, err)
        ExitChan <- true
    }(sconn, dconn, ExitChan)
    <-ExitChan
    dconn.Close()
}
 
func getIP() (string, bool) {
    lock.Lock()
    defer lock.Unlock()
 
    if len(trueList) < 1 {
        return "", false
    }
    ip := trueList[0]
    trueList = append(trueList[1:], ip)
    return ip, true
}

以上這篇golang 實(shí)現(xiàn)tcp轉(zhuǎn)發(fā)代理的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/fyxichen/article/details/51505542

延伸 · 閱讀

精彩推薦
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • Golanggolang如何使用struct的tag屬性的詳細(xì)介紹

    golang如何使用struct的tag屬性的詳細(xì)介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細(xì)介紹,從例子說起,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看...

    Go語言中文網(wǎng)11352020-05-21
  • Golanggolang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關(guān)于golang的httpserver優(yōu)雅重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,...

    helight2992020-05-14
  • Golanggolang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggo日志系統(tǒng)logrus顯示文件和行號(hào)的操作

    go日志系統(tǒng)logrus顯示文件和行號(hào)的操作

    這篇文章主要介紹了go日志系統(tǒng)logrus顯示文件和行號(hào)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • GolangGolang通脈之?dāng)?shù)據(jù)類型詳情

    Golang通脈之?dāng)?shù)據(jù)類型詳情

    這篇文章主要介紹了Golang通脈之?dāng)?shù)據(jù)類型,在編程語言中標(biāo)識(shí)符就是定義的具有某種意義的詞,比如變量名、常量名、函數(shù)名等等,Go語言中標(biāo)識(shí)符允許由...

    4272021-11-24
  • GolangGolang中Bit數(shù)組的實(shí)現(xiàn)方式

    Golang中Bit數(shù)組的實(shí)現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧...

    天易獨(dú)尊11682021-06-09
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品日本 | 国产自产高清不卡 | 欧美天堂一区 | 看国产到性色 | 国产精品一区视频 | 精品国产鲁一鲁一区二区在线观看 | 中文色视频 | 国产目拍亚洲精品99久久精品 | 久久黄网| 日韩亚洲| 免费的一级毛片 | 日韩视频在线观看一区 | 视频一区二区国产 | 欧美一区二区精品 | 精品国产一区二区三区在线观看 | 在线一区 | av片在线观看 | 中文字幕国产视频 | 一区二区三区四区在线 | 国产精品久久久久久久久久久久久久 | 亚洲一区二区三区高清 | 国产精品国产自产拍高清av | 中国大陆高清aⅴ毛片 | 欧美在线一区二区三区 | av在线一区二区三区 | 亚洲性片 | 黄视频| 欧美精品一区二区三区一线天视频 | 成人网18免费网站 | 亚洲网站视频 | 久久国产精品一区二区 | 亚洲电影一区二区 | 精品一区二区三区久久 | 亚州成人| 久久蜜桃精品一区二区三区综合网 | 丁香亚洲 | 国产精品久久久久久亚洲调教 | 国产激情在线看 | 亚洲成人久久久 | 日韩欧美在线一区 | theporn国产在线精品 |