英文:
How to write a user defined struct object in net.Conn.Write()
问题
我有一个简单的TCP服务器在一个端口上监听。如何在net.Conn.Write()
中编写一个用户定义类型的对象?
我的代码如下:
func main() {
ln, err := net.Listen("tcp", ":2000")
if err != nil {
log.Fatal(err)
}
msgchan := make(chan string)
for {
conn, err := ln.Accept()
if err != nil {
log.Println(err)
continue
}
}
}
在net.Conn.Write()
中,你可以将用户定义类型的对象转换为字节流,然后将其写入连接。你可以使用encoding/json
包将对象编码为JSON格式,然后使用conn.Write()
将JSON字节流写入连接。以下是一个示例:
import (
"encoding/json"
"log"
"net"
)
type User struct {
Name string
Email string
}
func main() {
ln, err := net.Listen("tcp", ":2000")
if err != nil {
log.Fatal(err)
}
for {
conn, err := ln.Accept()
if err != nil {
log.Println(err)
continue
}
user := User{
Name: "John Doe",
Email: "johndoe@example.com",
}
jsonBytes, err := json.Marshal(user)
if err != nil {
log.Println(err)
continue
}
_, err = conn.Write(jsonBytes)
if err != nil {
log.Println(err)
}
conn.Close()
}
}
在上面的示例中,我们定义了一个User
结构体,并在main()
函数中创建了一个User
对象。然后,我们使用json.Marshal()
将User
对象编码为JSON字节流,并使用conn.Write()
将字节流写入连接。请注意,我们在写入完成后关闭了连接。
英文:
I have a simple TCP server listening on a port. How to write an object of type user defined in net.Conn.Write()
?
My code is given below:
func main() {
ln, err := net.Listen("tcp", ":2000")
if err != nil {
log.Fatal(err)
}
msgchan := make(chan string)
for {
conn, err := ln.Accept()
if err != nil {
log.Println(err)
continue
}
}
}
答案1
得分: 1
你必须将对象序列化为[]byte
或io.Reader
。
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论