Go1 7 3乙個收發訊息的小介面

2021-07-25 22:01:37 字數 930 閱讀 9413

package transport

import (

"encoding/binary"

"errors"

"io"

"math"

"sync"

)const (

sizelen =5

//設定訊息多少位元組大小,1<<4*8-1長度,最後乙個位元組用來做訊息分割的,防止惡意鏈結

)var (

errlength = errors.new("message too large")

errheader = errors.new("message head error")

)//新增資料頭並傳送

func sedmsg(w io.writer, p byte) error

var buf = make(byte, sizelen+msglen)

binary.bigendian.putuint32(buf, uint32(msglen))

copy(buf[sizelen:], p)

_, err := w.write(buf)

return err

}//從資料流中根據頭長度讀取完整的訊息

func rcvmsg(r io.reader, lock sync.locker) (byte, error)

if header[sizelen-1] ==0

msg := make(byte, int(length))

if _, err := io.readfull(r, msg); err != nil

msg = msg[:0]

return

nil, err

}return msg, nil

}return

nil, errheader

}

做乙個FSK的收發試驗 之一

這裡使用我們之前寫好的簡易的dds模組。我們先回顧一下用到的這個my dds模組。my dds my dds clk rst clr cnt step sin cos module my dds input clk rst,clr input 15 0 cnt,input 7 0 step outp...

win10的乙個好訊息和乙個壞訊息

更新到最新的win10以後,乙個重大的好訊息就是 win10終於自帶curl工具了,慶祝 撒花 同時自帶的還有tar工具。開啟cmd輸入curl help和tar help可以看到命令的幫助資訊。對於自帶curl工具正是乙個令人振奮的訊息。但是,但是 千萬不要用power shell來使用curl,...

乙個好用的串列埠類(收發自如)

個串列埠通訊的類 ifndef commutils h define commutils h class commutils endif include stdafx.h include commutils.h include stdio.h const int read timeout 500 c...