V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kagetu  ›  全部回复第 1 页 / 共 1 页
回复总数  7
94 天前
回复了 Koril 创建的主题 计算机 2024 年想换台笔记本,老哥们有什么推荐?
现在的 vaio 好像也是全接口,但感觉对比 10 年前完全没进步
94 天前
回复了 Koril 创建的主题 计算机 2024 年想换台笔记本,老哥们有什么推荐?
如果是 10 年前,我会推荐 sony 的 vaio ,轻+薄+全接口(甚至可以插网线),12 年买的 15 周年版现在还在用。
但现在的话,我也不知道了
175 天前
回复了 16cfecc 创建的主题 NAS 2023 年双十一期间 家庭存储方案推荐
我每年都研究,每年都劝退自己,过程为:路由->nas->nuc->塔式->机架->机房->放弃
324 天前
回复了 sbldehanhan 创建的主题 C socket 可以传输结构体吗?
所以复杂的地方还不只在于你能不能发送结构,你还要和对方商量后怎么识别到底发的什么,要发送的数据有多大,比如你发了 8 个 00001111 ,由于网卡了一下,对方只接收到了前 4 个 0000 就以后全接完了。那他读取时肯定就不对了。
所以除了在首位加个区别发送数据类型的标志,你可能还需要再加个发送的数据大小的。具体根据你的实际情况去自定义就可以了,一般是把数据的大小放在首位。
324 天前
回复了 sbldehanhan 创建的主题 C socket 可以传输结构体吗?
我觉得你能问这个问题,可能与我当初无法理解“报文”是个什么概念差不多,不知道自己到底有没有收到这个叫“报文”的东西,后来理解了(也不知道是不是真理解)才知道其实就是指发送的数据,只不过是一个名字的问题。
那么再回来看你的这个问题,send 的操作不管你是要发送结构体还是其它什么,都只是把对应内存地址里的数据弄成 01100101 这样发给对方,对方用 recv 接收到这些 01100101 后放到自己的内存里。
那对方怎么知道这些 01 是什么呢,前提就是你和对方已经商量好这次发送的是什么。对于你的结构 test ,对方也需要有一个同样的结构 test ,然后 struct a = {0}; recv(connfd, &a, sizeof(a), 0); ,或者 memcpy(&a, &data, sizeof(struct test_b);大概这样就可以了。
那如果你还有一个 struct test_b ,想要判断到底发 a 还是发 b ,有很多种方法,比如在发送的数据前加一位标志。这个标志 0 就代表后面的数据是 test ,如果是 1 就代表后面的数据是 test_b 。接收方先判断第一位数据是 0 还是 1 ,然后根据结果读取到对应结构。这个 1 你可以用 int ,或者 short ,那对方判断时也记得要对应的用 int 或者 short 。

如有错误之处,还望谅解。
325 天前
回复了 YamatoRyou 创建的主题 Windows 最近换了 Windows 11, 发现几个奇怪问题.
感觉要不等 12 吧,windows 都是隔代强,比如 xp->vista->7->8->10 (微软曾在 2015 年 5 月表示,Windows 10 将变成一项服务,它将持续接收更新,不会再有后续版本的 Windows 。)
2018-09-07 12:39:04 +08:00
回复了 calvincc 创建的主题 程序员 c 语言应用的越来越少了?
感觉也不算少吧,看你关注的方面了
ps 正在造轮子中....
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2440 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 00:15 · PVG 08:15 · LAX 17:15 · JFK 20:15
Developed with CodeLauncher
♥ Do have faith in what you're doing.