go语言io.copy go语言教程

Golang 端口转发工具初学gogo语言io.copy , 写一个端口转发工具 。很方便go语言io.copy的小工具go语言io.copy,希望能对大家学习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()
}
【golang】小技巧-利用io.copy写数据进文件io.copy是按默认的缓冲区32k循环操作的,不会将内容一次性全写入内存中,这样就能解决大文件的问题 。
golang io readline readallimport "bufio"
reader:=bufio.NewReader(conn)
reader.ReadLine()
//import "io"
io.Copy(dst , src)
//import "io/ioutil"
【go语言io.copy go语言教程】 ioutil.ReadAll(Conn)
File.Read(buf)
con.Write(buf)
go语言io.copy的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言教程、go语言io.copy的信息别忘了在本站进行查找喔 。

    推荐阅读