使用tcp套接字的发送结构
|
我正在读取文件到结构,然后将它们写入服务器。
这是一段代码:
struct b{
uint16_t num;
char str[10];
} x;
struct a{
uint32_t pid;
char str1[10];
char str2[10];
} y;
while(fscanf(fp,\"%s\",buff) != EOF)
while(1){
c = getchar();
if (c == \'\\n\')
break;
else
buff[i]= c ;
i++;
write(fd, &b,sizeof(b))
文字档案格式
123
乔治
背风处
如何读取文件并将其存储到每个结构?
当我写到服务器时,它看起来像
write(fd,&a,sizeof(struct a))。
写(fd,&b,sizeof(struct b))?
如何确保正确的填充,字节序
这就是我运行文件的方式:/a.out IP PORT 没有找到相关结果
已邀请:
2 个回复
箩冀娥
(主机到网络的短路),接收时必须使用
(网络到主机的短路)。对于您的结构的每个成员。 人们常常忽略这一点。如果这两台机器都是现代的Intel机器,这对我们绝大多数人都是正确的,那么您就可以摆脱发送结构的代码。但是就像您提到的那样,这并不能保证填充和增强功能! 您还可以使用#pragma pack()GNU指令指定应如何处理填充。如果您可以同时依赖客户端和服务器的GNU工具链,则此方法有效,因为这不是C规范的一部分。
坝镰补翔奋
),然后分别发送每个。