当写入枚举时,c++向套接字写入什么
what is c++ writing to the socket when an enum gets written
当我编写ENUM引用时,会向套接字写入什么(如下)?我在whireshark中捕捉到了一些东西,但它与ENUM名称"JOIN"不同。。它的长度也不一样。服务器以某种方式理解此代码发送了JOIN枚举。
#include <sstream>
#include <iostream>
... WriteToSocket( SOCKET hSocket, char *buf, int iCount)
send(hSocket, buf, iCount, 0);
enum { JOIN, ...};
m_Command = JOIN;
WriteToSocket (hSocket, (char *)&m_Command, sizeof(m_Command));
我希望我包含了足够的信息和声明。。。
开始写入一个整数值。可变电容器的大小可以变化。在您的情况下,大小可能介于1字节零到int
大小的零之间。
要查看正在编写的内容,请添加以下代码:
std::cout << "Size: " << sizeof(m_Command) << " Value: " << (int)m_Command << "n";
如果我理解正确,您假设"JOIN"是作为字符串通过网络传输的。这是不对的。JOIN
是整数值的别名(如果它是枚举的第一个成员,则为0)。该整数值通过网络传输,服务器知道;该特定整数值是"JOIN"的别名。这就是为什么您的服务器可以按预期工作
此外,在wireshark日志中,您不能将"JOIN"视为字符串,而只能将其作为别名的整数值。
相关文章:
- C++ 关闭Boost ASIO SSL套接字的最佳方法是什么?
- 在QTcpSocket和python套接字之间交换数据的正确方法是什么?
- 将超时值设置为套接字轮询/选择的最佳实践是什么?
- 如果您不编写 Web 应用程序,并且您的客户端不是浏览器,那么 Web 套接字相对于常规套接字的优势是什么?
- 本地主机在套接字编程以及一般应用中需要什么
- MPI 中套接字编程的 select() 等效于什么?
- 通过网络中的套接字进行文件传输时,该程序中的文件传输错误是什么
- 当我写套接字时返回 0 是什么意思
- 我缺少什么来创建套接字
- 组织C++套接字服务器的最佳方式是什么
- 从 Linux 中的管道/套接字读取所有结构或什么都没有
- Qt udp套接字,什么会触发套接字的readyRead信号?
- 当写入枚举时,c++向套接字写入什么
- 是什么导致了我在套接字代码上的编译错误,以及我如何修复它
- 有什么替代方案可以在c++linux上对tcp进行套接字编程
- 使用套接字,发出通信结束信号的最佳做法是什么
- 当客户端连接越来越少的时候(在linux上使用套接字编程),服务器监听的明智方法是什么?
- 如果试图关闭一个已经关闭的套接字,会发生什么?
- 安全断开asio SSL套接字的正确方法是什么?
- 这些通过套接字发送/接收字符串的函数有什么问题?