如何通过socket传输二维点坐标数据,所需传输的数据协议应该怎么确定
###协议是一个很大的概念,通常来说tcp/udp/http我们称之为传输协议。
而你这里的协议我理解为通讯的数据格式,最简单的例子:
struct Point
{
int x;
int y;
};
// ...
Point point{22, 31};
send(&point, sizeof(Point));
这是最简单的数据格式,但通常来说,你传输的内容应该不止"点"的数据,所以通常会需要一个类型用于区分数据类型。
struct Point
{
int x;
int y;
};
struct Line
{
int x1;
int y1;
int x2;
int y2;
};
struct Data
{
int type; // 后面的数据类型(0=Point, 1=Line)
union
{
Point point;
Line line;
// ...
}
};
// ...
send(&data, sizeof(Data));
这就是我们通讯中最常见的数据格式定义。
###没太明白,你们是要自定义一个基于 TCP 的传输协议么……
为啥不用现成的 HTTP 呢……是使用场景对网络开销很敏感么?