如何通过套接字发送整数?

时间:2011-05-01 20:11:26

标签: c

我试图通过套接字发送一个整数。我正在使用此代码执行此操作;但是,我的C代码将无法编译。编译器抱怨myInt尚未声明。

int tmp = htonl(myInt);
write(socket, &tmp, sizeof(tmp));

我如何申报myInt?感谢。

4 个答案:

答案 0 :(得分:5)

您确定它已在您的程序中正确声明了吗?

试试这样:

int myInt = something;    
int tmp = htonl((uint32_t)myInt);
write(socket, &tmp, sizeof(tmp));

答案 1 :(得分:1)

在处理套接字库之前,您可能需要花些时间学习基本的C语言。

您需要将myInt声明为整数类型的变量,如下所示:

  int myInt;

这将编译器引入名为" myInt"的标识符。其类型为int。然后,编译器可以根据myInt的类型决定您是否使用myInt进行合法处理。

给变量一个初始值几乎总是一个好主意:

  int myInt = 0;

答案 2 :(得分:-2)

一个简单的解决方案是将整数转换为char并发送4字节的char缓冲区

int myInt char * ptr =& myInt; write(socket,ptr,sizeof(int));

在接收端读取4字节.. 你对endianess没有任何问题。

答案 3 :(得分:-2)

将所有内容转换为char,您不必担心字节序,因为char是一个字节,而是以字节为单位读取字节。