Tag: sockets

使用node-ipc和unix套接字在NodeJS和C之间进行通信

我想通过Unix套接字使用node-ipc在NodeJS和C程序之间进行通信,根据该主页,这是最快的选择。 (他们将在同一台机器上)。 该软件包声称它可以与C程序通信。 (我必须进行健全检查)。 问题是示例不提供示例C代码,我接下来不知道如何让他们说话。 有人能指出我的C代码示例来匹配那些客户端/服务器示例吗? 例如, 我如何调整本教程在C中使用unix管道 (假设我不完全偏离轨道?!也许它是我想要的“ 域套接字 ”?)这对我来说没有任何意义,我我错过了至关重要的事情。

C中的非阻塞客户端和服务器套接字

我开始阅读并了解“套接字”,但我正在寻找一个用C编写的小代码示例,用于客户端和服务器,它将是非阻塞的 代码应该能够从客户端发送输入,并且服务器必须能够以非阻塞状态接收输出,两者都应该处于非阻塞状态。 我在谷歌和书籍,YouTube上读了很多,但没有什么真正帮助。 这是我的服务器: #include #include #include #include #include #include #include #include #include int main() { int sock; int addr_len, bytes_read; char recv_data[1024]; struct sockaddr_in server_addr , client_addr; if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror(“Socket”); exit(1); } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(5000); server_addr.sin_addr.s_addr = inet_addr(“127.0.0.1”); bzero(&(server_addr.sin_zero),8); if (bind(sock,(struct sockaddr *)&server_addr, sizeof(struct […]

Mac OS X上的奇怪RAW套接字

当我在Mac OS X上运行一个用C编码的简单数据包嗅探器时,我根本没有输出,这是一个奇怪的事情! 有人可以帮我理解发生了什么。 #include #include #include #include #include #include int main(void) { int i, recv_length, sockfd; u_char buffer[9000]; if ((sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_TCP)) == -1) { printf(“Socket failed!!\n”); return -1; } for(i=0; i < 3; i++) { recv_length = recv(sockfd, buffer, 8000, 0); printf("Got some bytes : %d\n", recv_length); } return 0; } […]

如何判断套接字缓冲区是否已满?

如何判断读取套接字缓冲区是满还是写入套接字缓冲区为空? 有没有办法可以在没有系统调用的情况下获得套接字缓冲区的状态? 更新:怎么样:当读取套接字缓冲区已满或写入套接字缓冲区为空时,我想获得回调或信号。 这样我就可以停止处理以允许在线路上发生更多的I / O,因为在线路上发送数据时,I / O限制总是一个问题。 select()调用是检查读缓冲区中是否包含某些内容的方法。 不是当它满了(我想)。