函数调用之间是否存在套接字?

时间:2015-07-29 20:36:06

标签: c function sockets network-programming

在C语言中,函数中的局部变量在函数返回时被销毁(它们不再可访问,除非你明显地传递指针)。

套接字会怎样?特别是,如果我在1个函数中创建一个套接字,我可以传入sockid并将其绑定到另一个函数中,在另一个函数中监听,在另一个函数中接受吗?

从我可以看到这应该有用,但我不是C的专家。

2 个答案:

答案 0 :(得分:1)

这样做应该没有问题。例如:

int sock = my_socket();
my_bind(sock);
my_listen(sock);
int connected_sock = my_connect(sock);
my_read(connected_sock);

答案 1 :(得分:0)

  

如果我在1个函数中创建一个套接字,我是否可以传递sockid并将其绑定到另一个函数中,另一个在另一个函数中调用,并在另一个函数中接受?

是的,你可以。当您创建套接字时,您获得的是套接字文件描述符。您可以将该值传递给其他函数,就像您可以传递任何其他值(不包括局部变量的return地址一样)。