File tree 1 file changed +51
-0
lines changed
1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change
1
+ // TCP 로 데이터가 올때마다 버퍼 크기 만큼 읽어서 처리한다.
2
+ package monolib
3
+
4
+ import (
5
+ "crypto/rand"
6
+ "fmt"
7
+ "net"
8
+ )
9
+
10
+ func ReadIntoBuffer (){
11
+ payload := make ([]byte , 1 << 24 ) // 16MB
12
+ _ , err := rand .Read (payload ) // 랜덤한 데이터를 payload 에 채운다.
13
+ if err != nil {
14
+ panic (err )
15
+ }
16
+
17
+ listener , err := net .Listen ("tcp" , ":8080" )
18
+ if err != nil {
19
+ panic (err )
20
+ }
21
+
22
+ go func () {
23
+ conn , err := listener .Accept ()
24
+ if err != nil {
25
+ panic (err )
26
+ }
27
+ defer conn .Close ()
28
+
29
+ _ , err = conn .Write (payload )
30
+ if err != nil {
31
+ panic (err )
32
+ }
33
+ }()
34
+
35
+ conn , err := net .Dial ("tcp" , ":8080" )
36
+ if err != nil {
37
+ panic (err )
38
+ }
39
+ // 데이터가 올때 마다 버퍼 크기 만큼 읽어서 처리한다.
40
+
41
+ buf := make ([]byte , 1 << 19 ) // 512KB
42
+
43
+ for {
44
+ n , err := conn .Read (buf )
45
+ if err != nil {
46
+ panic (err )
47
+ }
48
+
49
+ fmt .Printf ("Read %d bytes from the connection into the buffer \r " , n )
50
+ }
51
+ }
You can’t perform that action at this time.
0 commit comments