go tcp 통신

6762 단어
----tcp    


package main import (
"net" "fmt" ) func main() { conn,err := net.Dial("tcp","127.0.0.1:8101") if err != nil{ fmt.Println("err=",err) return } defer conn.Close() // conn.Write([]byte("hello world,I learn go!")) }


---tcp 서버
package main

import (
    "net"
    "fmt"

    "strings"
)

func HandleConn(conn net.Conn)  {
   //      ,    conn
   defer conn.Close()

   //           
   addr := conn.RemoteAddr().String()
   fmt.Println(addr," connect sucessful")
   buf := make([]byte,2048)

   for{
        n,err := conn.Read(buf)
        if err != nil{
            fmt.Println("err=",err)
            return
        }
        fmt.Printf("[%s]:%s
",addr,string(buf[:n])) fmt.Println("len=",len(string(buf[:n]))) if "exit" == string(buf[0:n-2]) { //"\r
"
fmt.Println(addr,"exit") return } // conn.Write([]byte(strings.ToUpper(string(buf[:n])))) } } func main() { // listener,err := net.Listen("tcp","127.0.0.1:8000") if err != nil{ fmt.Println("err=",err) return } defer listener.Close() // for { conn,err := listener.Accept() if err != nil{ fmt.Println("err=",err) return } // go HandleConn(conn) } }

좋은 웹페이지 즐겨찾기