リモート マシン上の Python サーバーにデータを送信する C プログラムがあります。C コードはソケットを接続し、帯域外メッセージとそれに続くデータを送信します。
int on = 1;
fd = socket(PF_INET, SOCK_STREAM, 0);
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(int))
...
send(fd, msg, msg_size, MSG_OOB);
write(fd, data, data_size);
サーバーでは、Python コードが接続を受け入れ、OOB メッセージとデータを読み取ります。
self.socket = socket.socket(socket.PF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket_SOL_SOCKET, socket_SO_REUSEADDR, 1)
self.socket.bind(self.server_addr)
self.socket.listen(self.request_queue_size)
...
...
msg = csock.recv(msg_size, socket.MSG_OOB)
...
ただし、単に呼び出すと、msgにデータは受信されません
msg = csock.recv(msg_size)
それから私はデータを取得します。
私は何を間違っていますか?