相关疑难解决方法(0)

socket.shutdown vs socket.close

我最近看到了一些看起来像这样的代码(当然sock是一个套接字对象):

sock.shutdown(socket.SHUT_RDWR)
sock.close()
Run Code Online (Sandbox Code Playgroud)

在套接字上调用shutdown然后关闭它的目的究竟是什么?如果它有所不同,则此套接字用于非阻塞IO.

python sockets asynchronous

118
推荐指数
4
解决办法
13万
查看次数

通过Linux套接字发送文件描述符

我试图通过linux socket发送一些文件描述符,但它不起作用.我究竟做错了什么?一个人应该如何调试这样的东西?我尝试在可能的地方放置perror(),但他们声称一切正常.这是我写的:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/wait.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <fcntl.h>

void wyslij(int socket, int fd)  // send fd by socket
{
    struct msghdr msg = {0};

    char buf[CMSG_SPACE(sizeof fd)];

    msg.msg_control = buf;
    msg.msg_controllen = sizeof buf;

    struct cmsghdr * cmsg = CMSG_FIRSTHDR(&msg);
    cmsg->cmsg_level = SOL_SOCKET;
    cmsg->cmsg_type = SCM_RIGHTS;
    cmsg->cmsg_len = CMSG_LEN(sizeof fd);

    *((int *) CMSG_DATA(cmsg)) = fd;

    msg.msg_controllen = cmsg->cmsg_len;  // why does example from man need it? isn't it redundant?

    sendmsg(socket, …
Run Code Online (Sandbox Code Playgroud)

c sockets linux file-descriptor

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

标签 统计

sockets ×2

asynchronous ×1

c ×1

file-descriptor ×1

linux ×1

python ×1