小编shu*_*ero的帖子

c/c ++ - 通过套接字发送time_t的最安全的方法

我已经设置了一个C++服务器/客户端环境,并尝试从服务器向客户端发送time_t值(在任何服务器中都很有用).但是我很头疼:time_t似乎没有任何尺寸规格.我想知道什么是通过网络发送time_t最安全(更便携)的方式.

这是一个小例子:

time_t T = time(NULL);
unsigned char * P = (unsigned char *)&T;
// ... Convert it to network byte order, etc.

// Here, 's' would be the socket, and 'S'
// the size of the data that is going to
// be sent
send(s, P, S, 0);
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  • time_t不是大小固定的
  • time_t可以是有符号或无符号整数数据类型的typedef

我如何处理这两个问题,以便我可以在(几乎)任何架构之间安全地发送它?

提前致谢.

编辑:看到相同的三个答案后,我觉得最好回答这里.对不起,我之前没有说清楚.我更喜欢用'纯'字节发送它,虽然将它作为字符串发送不是问题.据我了解,我需要(再次)记住主机系统中time_t数据类型的签名和大小,不是吗?(谢谢,对不起)

c c++ time network-programming

10
推荐指数
2
解决办法
2301
查看次数

GNU pth与pthread

我想用C++构建一个可移植且高效的服务器; 它将有许多客户端同时尝试连接,因此它必须能够并行处理每个请求.

我一直在努力寻找多线程的文档,指南等.我发现了很多关于POSIX Pthread的内容,但对于GNU Pth几乎没有(除了gnu.org中的官方手册).

那么,有人能解释一下POSIX Pthread和GNU Pth之间的区别吗?请,我希望回复不是维基百科内容的副本(请记住,我是多线程的绝对新手).我希望我的服务器在所有基于*nix的系统之间可移植和高效,远离使用繁重的fork().

谢谢你的帮助.

PS:我认为最好在这里问一下:Windows怎么样?Pthreads或Pth是选项吗?如果没有,该操作系统的API是什么?

c++ multithreading

4
推荐指数
1
解决办法
3753
查看次数

秘密服务器协议保持软件免费

我目前正在学习C中的基本网络,我对互联网的"模糊"部分感兴趣:秘密协议.

假设我开发了一款多人在线游戏.我会设计自己的协议来打包和解包数据,因此客户端和服务器都可以正确地发送,接收和解析信息(例如:位置数据包,施法咒语......等等).当然,我不希望该协议属于公共领域,因为任何想在我的服务器上制作"坏东西"的人都能够做到这一点.但我想保留我的项目免费软件.

那我该怎么办?你能告诉我如何保持我的假设项目开源,而不是让它不安全吗?

提前致谢

c protocols network-protocols

2
推荐指数
1
解决办法
131
查看次数