新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Golang网络编程:TCP/UDP编程实例
葫芦岛ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
Golang是一个非常流行的编程语言,特别适合于网络编程方面的应用。在本篇文章中,我们将会涵盖TCP和UDP网络编程的实例。
TCP编程实例
TCP是一种面向连接的协议,它提供可靠的数据传输机制。下面是一个简单的TCP服务器和客户端程序。
服务器:
`go
package main
import (
"fmt"
"net"
)
func main() {
ln, err := net.Listen("tcp", ":8080")
if err != nil {
fmt.Println(err)
return
}
for {
conn, err := ln.Accept()
if err != nil {
continue
}
go handleConnection(conn)
}
}
func handleConnection(conn net.Conn) {
buf := make(byte, 1024)
_, err := conn.Read(buf)
if err != nil {
fmt.Println("Error reading:", err.Error())
}
fmt.Println("Message received:", string(buf))
conn.Close()
}
客户端:`gopackage main import ( "fmt" "net") func main() { conn, err := net.Dial("tcp", "127.0.0.1:8080") if err != nil { fmt.Println(err) return } fmt.Fprintf(conn, "Hello, server") conn.Close()}首先服务器程序使用net.Listen()函数监听一个TCP端口,等待客户端的连接。然后用ln.Accept()函数接受连接并在一个新的goroutine中处理连接,然后在服务器上打印收到的消息。
客户端程序使用net.Dial()函数连接到服务器。然后使用fmt.Fprintf()函数向服务器发送一条消息,在此之后关闭连接。
UDP编程实例
UDP是一种不可靠的协议,它提供了无连接的数据传输机制。下面是一个简单的UDP服务器和客户端程序。
服务器:
`go
package main
import (
"fmt"
"net"
)
func main() {
pc, err := net.ListenPacket("udp", ":8080")
if err != nil {
fmt.Println(err)
return
}
defer pc.Close()
buf := make(byte, 1024)
for {
_, addr, err := pc.ReadFrom(buf)
if err != nil {
fmt.Println(err)
continue
}
fmt.Println("Message received:", string(buf))
_, err = pc.WriteTo(buf, addr)
if err != nil {
fmt.Println(err)
continue
}
}
}
客户端:`gopackage main import ( "fmt" "net") func main() { conn, err := net.Dial("udp", "127.0.0.1:8080") if err != nil { fmt.Println(err) return } fmt.Fprintf(conn, "Hello, server") buf := make(byte, 1024) _, err = conn.Read(buf) if err != nil { fmt.Println(err) return } fmt.Println("Message received:", string(buf)) conn.Close()}首先UDP服务器程序使用net.ListenPacket()函数监听一个UDP端口,等待客户端的连接。然后使用pc.ReadFrom()函数从客户端接受消息,并在服务器上打印收到的消息。接着使用pc.WriteTo()函数给客户端发送一个消息。
客户端程序使用net.Dial()函数连接到服务器。然后使用fmt.Fprintf()函数向服务器发送一条消息。接着使用conn.Read()函数从服务器接收消息,并在客户端上打印收到的消息。
总结
本文中我们涵盖了TCP和UDP网络编程的实例,这些实例为初学者提供了一个简单而有用的入门介绍。Golang的网络编程是一件非常有趣和有用的事情,因为它可以帮助我们构建各种各样的网络应用。