본문 바로가기

Network6

golang network bytes함수를 이용한 marshal/unmarshal 이번 글에서는 golang의 기본 모듈인 bytes를 활용하여 어떻게 marshal/unmarshal을 하는지 알아보겠습니다. hello world라는 문자열을 marshaling할건데 hello와 world 사이에 byte 숫자 0을 집어넣을 것입니다. 그리고 파싱할 때는 0을 구분자로 사용하여 구분자까지만 데이터를 받아오는 예제를 만들어보겠습니다. (즉, 파싱을 완료하면 world는 볼 수 없겠지요.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 package main import ( "bytes" "fmt" ) func main() { b := new(bytes.Buffer) b.WriteString("hello") b.WriteByte(0) b.WriteString("world") .. 2021. 4. 18.
golang network udp connection 기초 이번 글에서는 golang 내장 모듈을 이용하여 udp connection을 만들어서 client가 "ping"이라고 보내면 server는 바로 "ping"을 return 해주는 예제를 만들어보겠습니다. 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 package main import ( "fmt" "log" "net" "time" ) func MakeUDPServer() net.Addr { server, err := net.ListenPacket("udp", "127.0.0.1:") if err.. 2021. 4. 17.
Golang network#2 tcp buffer 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 package main import ( "crypto/rand" "io" "net" "testing" ) func TestReadIntoBuffer(t *testing.T) { payload := make([]byte, 1 2021. 4. 12.
Golang network TCP hello world 예제 이번 글에서는 TCP서버를 열고 거기에 접속하는 사용자에게 "Hello TCP"라는 문자열을 return 해준 후에 connection을 닫는 간단한 프로그램을 만들어보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package main import ( "io" "log" "net" ) func main() { li, err := net.Listen("tcp", "127.0.0.1:8080") if err != nil { log.Panic(err) } defer li.Close() for { conn, err := li.Accept() if err != nil { log.Println(err) } io.WriteString(co.. 2021. 4. 5.