如何打开socket只在linux中发送数据

时间:2011-11-16 07:37:45

标签: linux sockets

如何打开套接字以发送数据或接收数据? 如果要使用套接字发送数据,该套接字将不会收到任何数据。

是否有可用的套接字选项?

3 个答案:

答案 0 :(得分:2)

如果发件人和收件人进程都在同一台计算机上,您可以使用pipe而不是套接字,请参阅pipe(2)手册页了解其工作原理。

如果这是通过网络进行通信,您可以使用套接字而不发送数据。如果您想确定,可以使用shutdown(fd, SHUT_RD)关闭套接字的写入部分。

答案 1 :(得分:1)

使用unix域套接字,不要绑定它:

fd = socket(PF_LOCAL, SOCK_DGRAM, 0);

然后您可以使用套接字发送,但没有人能够将数据发送到套接字。 即使接收者也无法回应。

答案 2 :(得分:0)

如果这是通过网络进行的通信,并且您希望确保这是一个只写套接字,则可以使用shutdown(fd,SHUT_RD)来关闭套接字的写入部分。 如果这是一个SOCK_DGRAM - 一个UDP套接字,请使用connect()连接到远程对等,然后调用shutdown()。 shutdown()关闭连接的套接字。