Tôi có một ứng dụng máy chủ của khách hàng, sử dụng kết nối TCPKhông thể gửi dữ liệu gob trên TCP tại Gò Lập trình
Chủ đầu tư:
type Q struct {
sum int64
}
type P struct {
M, N int64
}
func main() {
...
//read M and N
...
tcpAddr, err := net.ResolveTCPAddr("tcp4", service)
...
var p P
p.M = M
p.N = N
err = enc.Encode(p)
}
Server:
type Q struct {
sum int64
}
type P struct {
M, N int64
}
func main() {
...
tcpAddr, err := net.ResolveTCPAddr("ip4", service)
listener, err := net.ListenTCP("tcp", tcpAddr)
...
var connB bytes.Buffer
dec := gob.NewDecoder(&connB)
var p P
err = dec.Decode(p)
fmt.Printf("{%d, %d}\n", p.M, p.N)
}
Kết quả khi cầm giao bóng là {0, 0} vì tôi không biết cách lấy biến số bytes.Buffer
từ net.Conn
.
Có cách nào để gửi các biến gob qua TCP không?
Nếu đúng, làm thế nào điều này có thể được thực hiện? Hoặc có bất kỳ thay thế trong việc gửi số trên TCP?
Bất kỳ trợ giúp hoặc mã mẫu nào thực sự sẽ được đánh giá cao.
Ví dụ của bạn hoạt động tốt. Cảm ơn. Chỉ có câu hỏi tôi có là làm thế nào tôi có thể gửi kết quả từ máy chủ trở lại cho khách hàng? – Emanuel
Ổ cắm là hai chiều. Chỉ cần viết vào nó trong hàm 'handleConnection', chính xác như bạn viết trong máy khách. –
Điều này làm việc tuyệt vời. Cảm ơn ví dụ. Tôi muốn gửi một {map [string] string} đến máy chủ. Nhưng nó không được giải mã ở cuối máy chủ. Bất cứ đề nghị về điều này? – Dany