区块链项目 - 13 简易的网络服务

这篇具有很好参考价值的文章主要介绍了区块链项目 - 13 简易的网络服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

13.9 处理客户端接收到的数据

/Users/qinjianquan/publicChain/Part78-Net-Conn

使用goroutine并行处理请求

/Users/qinjianquan/publicChain/Part78-Net-Conn/src/Server.go
func StartServer(nodeID string, mineAddress string) {

--
	for {

		//receive data from client
		conn, err1 := ln.Accept()
		if err != nil {
			log.Panic(err1)
		}
		go HandleConnection(conn)
	}
}
func HandleConnection(conn net.Conn) {
	//read data from client
	request, err := ioutil.ReadAll(conn)
	if err != nil {
		log.Panic(err)
	}
	fmt.Printf("received a message:%s\n", request[:COMMANDLENGTH])
}

配置handle方法

func handleAddr(request []byte, bc *Blockchain)      {}
func handleVersion(request []byte, bc *Blockchain)   {}
func handleBlock(request []byte, bc *Blockchain)     {}
func handleInv(request []byte, bc *Blockchain)       {}
func handleGetblocks(request []byte, bc *Blockchain) {}
func handleTx(request []byte, bc *Blockchain)        {}
func handleGetData(request []byte, bc *Blockchain)   {}

配置常量文章来源地址https://www.toymoban.com/news/detail-403892.html

const COMMAND_VERSION = "version"
const COMMAND_ADDR = "addr"
const COMMAND_BLOCK = "block"
const COMMAND_INV = "inv"
const COMMAND_GETBLOCKS = "getblocks"
const COMMAND_GETDATA = "getdata"
const COMMAND_TX = "tx"

到了这里,关于区块链项目 - 13 简易的网络服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络】UDP通讯(服务器/客户端)

    前言:UDP通讯实现比较简单,单某些情况下也会使用,建议先看一下说明,然后运行代码感受一下。         传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但U

    2024年02月12日
    浏览(59)
  • 什么是区块链服务网络(BSN)

    BSN全称为区块链服务网络(Blockchain-based Service Network),是一个跨云服务、跨门户、跨底层框架,用于部署和运行区块链应用的全球性公共基础设施网络。 BSN是由国家信息中心、中国移动通信集团公司、中国银联股份有限公司、北京红枣科技有限公司共同发起。 互联网是通过

    2024年02月01日
    浏览(30)
  • 【网络编程】网络套接字&udp通用服务器和客户端

    端口号(port)是传输层协议的内容: 端口号是一个2字节16位的整数(uint16) 端口号用来标识主机上的一个进程 IP地址+port能够标识网络上的某一台主机和某一个进程 一个端口号只能被一个进程占用 此处我们先对TCP(Transmission Control Protocol 传输控制协议) 有一个直观的认识,后面再

    2024年02月16日
    浏览(178)
  • 网络编程六--UDP服务器客户端

    UDP(User Datagram Protocol)称为用户数据报协议,是一种无连接的传输协议。 UDP的主要应用在即使丢失部分数据,也不影响整体效果的场景。例实时传输视频或音频时,即使丢失部分数据,也不会影响整体效果,只是会有轻微的画面抖动或杂音。 UDP服务器/客户端不像TCP那样,交

    2024年02月15日
    浏览(46)
  • 双线网络发布服务器以及客户端上网介绍

    实验要求: 1、公司想将自己的服务器双线发布出去。 2、员工可以访问电信和网通的WEB服务器。 配置思路: 1、事先指明公司和电信网通路由器的NAT的内部和外部端口。配置NAT路由器的默认路由。 2、实现公网网络互通。 3、公司配置: 配置访问控制列表 access-list 100 permit

    2024年02月06日
    浏览(72)
  • 区块链服务网络的顶层设计与应用实践

    日前,2023全球数字经济大会专题论坛:Web3.0发展趋势专题论坛暨2023区块链、元宇宙蓝皮书发布会在北京举行。本次论坛上隆重发布了《中国区块链发展报告(2023)》,对我国区块链行业在2022年的发展状况进行了总结梳理,针对区块链行业发展的焦点问题、核心技术以及未来

    2024年02月14日
    浏览(50)
  • 【计算机网络】网络编程套接字&UDP服务器客户端的简单模拟

    需要云服务器等云产品来学习Linux的同学可以移步/–腾讯云–/官网,轻量型云服务器低至112元/年,优惠多多。(联系我有折扣哦) 每台主机都有自己的IP地址,当数据在进行通信的时候,除了要发送的数据外,在报头里面还要包含发送方的IP和接收方的IP,这里发送方的IP就

    2024年02月20日
    浏览(59)
  • 网络编程:编写一个TCP客户端与服务端

    用的系统是Ubuntu。 socket用来创建套接字。这个函数服务端与客户端都要使用。 第一个参数用来制定地址族规范,比如 AF_INET(PF_INET) 表示IPv4地址, AF_INET6(PF_INET6) 表示IPv6地址。 第二个参数用来制定套接字的类型规范,如 SOCK_STREAM 表示面向连接的套接字, SOCK_DGRAM 表示面

    2024年02月01日
    浏览(46)
  • 区块链服务网络发展联盟最新成员单位名单公布

    原标题:《BSN发展联盟第六批入盟成员单位及全体联盟成员名单公示》 为了更好地推动BSN的发展,国家信息中心、中国移动通信集团有限公司、中国银联股份有限公司、北京红枣科技有限公司共同发起成立了区块链服务网络发展联盟(Blockchain-based Service Network Development Assoc

    2024年02月07日
    浏览(42)
  • Linux网络编程:线程池并发服务器 _UDP客户端和服务器_本地和网络套接字

    文章目录: 一:线程池模块分析 threadpool.c 二:UDP通信 1.TCP通信和UDP通信各自的优缺点 2.UDP实现的C/S模型 server.c client.c 三:套接字  1.本地套接字 2.本地套 和 网络套对比 server.c client.c threadpool.c   server.c client.c server.c client.c

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包