Skip to content

Commit f4e8f74

Browse files
committed
exercise: add an client server demo
1 parent 663074a commit f4e8f74

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
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+
}

0 commit comments

Comments
 (0)