服务器端代码(server.cj)
// 服务器端
import "udp"
func main() {
var serverAddr = "0.0.0.0" // 服务器监听所有网卡
var serverPort = 12345 // 服务器监听端口
// 创建UDP Socket
var serverSocket = udp.createSocket()
if serverSocket < 0 {
println("Error creating server socket")
return
}
// 绑定服务器地址和端口
var bindResult = udp.bind(serverSocket, serverAddr, serverPort)
if bindResult < 0 {
println("Error binding server socket")
udp.closeSocket(serverSocket)
return
}
println("UDP server listening on ", serverAddr, ":", serverPort)
// 接收客户端发送的数据
var buffer[1024]
var clientAddr
var clientPort
loop {
var bytesReceived = udp.recvFrom(serverSocket, buffer, clientAddr, clientPort)
if bytesReceived < 0 {
println("Error receiving data")
break
}
var receivedData = buffer[0:bytesReceived]
println("Received from ", clientAddr, ":", clientPort, " - ", receivedData)
// 回复客户端
var bytesSent = udp.sendTo(serverSocket, receivedData, clientAddr, clientPort)
if bytesSent < 0 {
println("Error sending data back to client")
}
}
// 关闭服务器端Socket
udp.closeSocket(serverSocket)
}
客户端代码(client.cj)
// 客户端
import "udp"
func main() {
var serverAddr = "127.0.0.1" // 服务器IP地址
var serverPort = 12345 // 服务器端口
// 创建UDP Socket
var clientSocket = udp.createSocket()
if clientSocket < 0 {
println("Error creating client socket")
return
}
// 准备发送的数据
var sendData = "Hello UDP Server!"
var sendBytes = udp.sendTo(clientSocket, sendData, serverAddr, serverPort)
if sendBytes < 0 {
println("Error sending data")
udp.closeSocket(clientSocket)
return
}
println("Data sent to server: ", sendData)
// 接收服务器返回的数据
var buffer[1024]
var serverAddrReceived
var serverPortReceived
var recvBytes = udp.recvFrom(clientSocket, buffer, serverAddrReceived, serverPortReceived)
if recvBytes < 0 {
println("Error receiving data from server")
} else {
var receivedData = buffer[0:recvBytes]
println("Received from server: ", receivedData)
}
// 关闭客户端Socket
udp.closeSocket(clientSocket)
}