一.程序介绍
该程序主要包括以下内容:
1.多线程程序设计的一般框架,新线程负责循环接收网络数据,一旦收到网络数据就交由主线程处理;主线程负责循环处理网络数据。
2.(UDP)套接字编程的一般框架,为了方便实验该程序只是用到了UDP套接字,没有考虑丢包延迟等网络问题,在实际程序设计中可以采用TCP套接字。
3.如何使用套接字发送多个不同的结构体,通过对不同的结构体添加不同的标志位,从而区分不同的结构体类型。
该程序的默认设置为:
1.各参与者IP地址为127.0.0.1(环回地址,用于单机测试)。
2.编号为i的参与者端口号为10000+i,例如,编号为1的参与者其端口号为10001。由于是采取多机测试,所以每个进程的IP地址都是127.0.0.1,所以需要使用不同的端口,从而区分出不同的进程,这样才能保证网络数据发送到正确的参与者处理。
3.编号为1的参与者向编号为2的参与者发送测试数据。编号为1的参与者向2发送三个不同的结构体,参与者2收到后首先提取结构体的标志位,然后确定用何种结构体变量来接收网络数据。提取到正确的结构体后,打印结构体中的数据。
二.程序源码
1.Node.h
#ifndef NORMALNODE
#define NORMAL