小编Die*_*Epp的帖子

使用"C"在套接字编程中发送数据

我之前发过一个问题,关于同样的问题,但在这里我想要我的代码指导.使用我尝试创建用于发送数据包的人的提示.我的最大数据包结构以及头和有效负载是16个字节.如果可能的话,通过发送和接收代码浏览并建议我哪里出错.基本上我的客户端不断向服务器发送数据,它只是没有结束,服务器不显示结果.

客户:

int main(int argc, char *argv[])
{
    int sockfd, portno, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;
    struct packet
    { 
        long int srcID;
        long int destID;
        long int pver;
        long int profiles;
        char length;
        long int data;
    };
    if (argc < 3) {
        fprintf(stderr,"usage: %s hostname port\n", argv[0]);
        exit(0);
    }
    portno = atoi(argv[2]); //Convert ASCII to integer
    sockfd = socket(AF_INET, SOCK_STREAM, 0); // socket file descriptor

    if (sockfd < 0) 
        error("ERROR DETECTED !!! Problem in opening socket\n");

    server = …
Run Code Online (Sandbox Code Playgroud)

c sockets network-programming

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

如何将共享库与-根据automake的需要链接?

如何--as-needed使用Automake 链接共享库?当我尝试将标志添加到时LDFLAGS,我看到这样libtool调用:

/bin/bash ../../libtool --mode=link ... -Wl,--as-needed ... dependencies
Run Code Online (Sandbox Code Playgroud)

这样会导致呼叫GCC,如下所示:

gcc -shared ... dependencies ... -Wl,--as-needed ...
Run Code Online (Sandbox Code Playgroud)

但这是错误的顺序。

  • 有没有办法用Libtool做到这一点?

  • 还是有一种使用Automake而不使用Libtool构建共享库的好方法?(过去,由于各种其他原因,我对Libtool感到沮丧...)

似乎Debian族人也遇到了这个问题(错误报告),但我希望能够为我的项目解决此问题,而不是弄乱我的系统(除非我误解了此解决方案)。

linker automake libtool

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

如何检查C 中的缓冲区?

我有一个大小为 1500 的缓冲区。在该缓冲区中,我需要检查 15 个字节是否全为零(从 100 到 115)。我们怎样才能做到这一点(如果我们不使用任何循环)?数据的类型是“unsigned char”,实际上它是一个unsigned char数组。

平台:Linux、C、gcc 编译器

使用memcmp()是否正确?我正在从智能卡读取一些数据并将它们存储在缓冲区中。现在我需要检查最后 15 个字节是否连续为零。我memcmp()在这里提到是因为我需要一种有效的方法;智能卡读取已经花费了一些时间。

或者按位比较是否正确。请建议。

c linux string

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

检测Linux上的pid是否是僵尸

我们可以通过shell命令行检测某些是否是一个僵尸进程

ps ef -o pid,stat | grep <pid> | grep Z
Run Code Online (Sandbox Code Playgroud)

要在我们使用的C/C++程序中获取该信息popen(),但我们希望避免使用popen().有没有办法在不产生额外流程的情况下获得相同的结果?

我们使用的是Linux 2.6.32-279.5.2.el6.x86_64.

linux popen zombie-process

3
推荐指数
1
解决办法
1435
查看次数

预计在左侧的结构.或.*但它是一种结构

我得到的编译错误structure required on left side of . or .*chest.contents[0],而且chest是一个结构:

class Item {
public:
    int id;
    int dmg;
};

class Chest {
public:
    Item contents[10];
};

int main() 
{
    Chest chest();

    Item item = chest.contents[0];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors most-vexing-parse

3
推荐指数
2
解决办法
2291
查看次数

为什么人们在 GLSL 中写 0.00390625 而不是 1.0/256.0?

我见过很多像这样的 GLSL 代码:

vec2 x = y * 0.00390625;
Run Code Online (Sandbox Code Playgroud)

通常,为了清楚起见,我将其写为:

vec2 x = y * (1.0 / 256.0);
Run Code Online (Sandbox Code Playgroud)

或作为:

vec2 x = y / 256.0;
Run Code Online (Sandbox Code Playgroud)

使用顶级版本是否合理?在我看来,如果您的编译器不支持数字文字的常量折叠或简单的强度降低,那么它确实必须非常可悲。

所以我的问题可以改写:您是否可能真的遇到不支持常量折叠或强度降低的 GLSL 编译器?我只是在考虑 OpenGL 实现中的 GLSL 编译器,而不是 GLSL 优化器。

opengl glsl

3
推荐指数
1
解决办法
423
查看次数

我可以在多处理器机器中禁用一个或多个处理器吗?

我有两个四核处理器的服务器,安装了Windows 2003标准版.我想在具有单四核处理器的机器上测试应用程序,我想使用这台机器,那么如何禁用两个处理器中的一个呢?

我更喜欢软件解决方案,但如果唯一的解决方案是硬件没问题.

windows testing

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

在数组中移动元素

我不确定为什么下面的代码不起作用,我试图在数组中找到NaN的值,然后将NaN移动到数组中的第一个元素(元素0)并将现有元素0与任何地方交换NaN是.请问我能检查一下我的代码吗?也许你们/女孩可以看到我不能的东西?

提前致谢!

#define NaN (float)(1e308*10*0)


void movenan(float array[], int size)
{
int w;
float hold;
float move;

for(w = 0; w < SIZE - 1; w++)
{
    if(array[w] == NaN)
    {
        hold = array[w];
        array[w] = array[0];
        array[0] = hold;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

c

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

如何在Objective-C/iOS中表示无限数~0.9999 .....

我有一个可能永远持续下去的数字,比如〜0.999999 ......

看到这个:

while (myNumber / 25 > 0.999999)
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

如何正确地在Objective-C中表示该数字?

或者我可能while不正确地做这个循环,有人可以告诉我如何解决它?我试图看看是否myNumber可以至少划分25次......所以即使26/25也会通过(%在这种情况下mod 不起作用).

objective-c

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

为什么在创建指针类型对象时内存没有分配给类?

我有点好奇为什么在创建指针类型对象时内存没有分配给类或结构?

例如 :-

class A
{
    public:

    void show()
    {
        cout<<" show function "<<endl;  
    }

};
int main()
{
A *a;
a->show();
   return 0;
};
Run Code Online (Sandbox Code Playgroud)

c++ object

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