File tree Expand file tree Collapse file tree 2 files changed +98
-0
lines changed
exercise/interview/client_server Expand file tree Collapse file tree 2 files changed +98
-0
lines changed Original file line number Diff line number Diff line change 1+ package main
2+
3+ import (
4+ "fmt"
5+ "net"
6+ )
7+
8+ /**
9+ @author: CodeWater
10+ @since: 2024/3/7
11+ @desc: $
12+ **/
13+
14+ func main () {
15+ // 连接服务器
16+ conn , err := net .Dial ("tcp" , "localhost:8080" )
17+ if err != nil {
18+ fmt .Println ("连接服务器失败:" , err )
19+ return
20+ }
21+ defer conn .Close ()
22+
23+ // 发送消息给服务器
24+ msg := "Hello"
25+ _ , err = conn .Write ([]byte (msg ))
26+ if err != nil {
27+ fmt .Println ("发送消息失败:" , err )
28+ return
29+ }
30+ fmt .Println ("已向服务器发送消息:" , msg )
31+
32+ // 接收服务器回复的消息
33+ buffer := make ([]byte , 1024 )
34+ n , err := conn .Read (buffer )
35+ if err != nil {
36+ fmt .Println ("接收服务器回复消息失败:" , err )
37+ return
38+ }
39+ serverMsg := string (buffer [:n ])
40+ fmt .Println ("服务器回复消息:" , serverMsg )
41+ }
Original file line number Diff line number Diff line change 1+ package main
2+
3+ import (
4+ "fmt"
5+ "net"
6+ )
7+
8+ /**
9+ @author: CodeWater
10+ @since: 2024/3/7
11+ @desc: $
12+ **/
13+
14+ func handleConnection (conn net.Conn ) {
15+ defer conn .Close ()
16+
17+ // 接收客户端发送的消息
18+ buffer := make ([]byte , 1024 )
19+ n , err := conn .Read (buffer )
20+ if err != nil {
21+ fmt .Println ("接收消息失败:" , err )
22+ return
23+ }
24+ clientMsg := string (buffer [:n ])
25+ fmt .Println ("客户端消息:" , clientMsg )
26+
27+ // 回复客户端消息
28+ reply := "你好"
29+ _ , err = conn .Write ([]byte (reply ))
30+ if err != nil {
31+ fmt .Println ("回复消息失败:" , err )
32+ return
33+ }
34+ fmt .Println ("已向客户端回复:" , reply )
35+ }
36+
37+ func main () {
38+ // 监听端口
39+ listener , err := net .Listen ("tcp" , ":8080" )
40+ if err != nil {
41+ fmt .Println ("监听端口失败:" , err )
42+ return
43+ }
44+ defer listener .Close ()
45+ fmt .Println ("服务器已启动,等待客户端连接..." )
46+
47+ // 接受客户端连接
48+ for {
49+ conn , err := listener .Accept ()
50+ if err != nil {
51+ fmt .Println ("接受客户端连接失败:" , err )
52+ continue
53+ }
54+ fmt .Println ("客户端连接成功:" , conn .RemoteAddr ())
55+ go handleConnection (conn )
56+ }
57+ }
You can’t perform that action at this time.
0 commit comments