Golang 局域网广播消息

消息发送方 server.go

package main

import (
	"bufio"
	"log"
	"net"
	"os"
)

func main() {

	laddr := net.UDPAddr{
		IP:   net.IPv4(0, 0, 0, 0),//写局域网下分配IP,0.0.0.0可以用来测试
		Port: 8080,
	}

	raddr := net.UDPAddr{
		IP:   net.IPv4(192, 168, 1, 255), //局域网广播地址
		Port: 8080,
	}

	conn, err := net.DialUDP("udp", &laddr, &raddr)

	if err != nil {
		log.Panicln(err.Error())
	}

	defer conn.Close()
	scan := bufio.NewScanner(os.Stdin)

	for scan.Scan() {
		mess := scan.Text()
		if mess == "quit" {
			return
		}
		_, err := conn.Write([]byte(mess))
		if err != nil {
			log.Panicln(err.Error())
		}
	}
}

消息接收方:client.go

package main

import (
	"log"
	"net"
)

func main() {
	net.InterfaceAddrs()
	laddr := net.UDPAddr{
		IP:   net.IPv4(0, 0, 0, 0), //写局域网下分配IP,0.0.0.0可以用来测试
		Port: 8080,
	}
	conn, err := net.ListenUDP("udp", &laddr)
	if err != nil {
		log.Panicln(err.Error())
	}
	defer conn.Close()
	buf := make([]byte, 1024)
	for {
		n, err := conn.Read(buf)
		if err != nil {
			log.Panicln(err.Error())
		}
		log.Println(string(buf[:n]))
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值