我正在制作一个不断检查以通过套接字接收和发送数据的程序,并且我已经全局声明了套接字并且它在2个线程函数中使用。我在main()中设置套接字,并且一个线程使用套接字使用recvfrom并且工作正常但是每当我尝试调用sendto时它返回一个值< 0因为recvfrom工作正常而让我感到困惑。
答案 0 :(得分:0)
允许套接字在C中是全局的吗?
是
答案 1 :(得分:0)
套接字只是一类文件描述符,在C中由int
值表示。这里重要的是为套接字存储的值(在您第一次调用socket(2)
时填充,并且在您使用{{1}在内核中释放它之前不会更改}})。作为系统提供的值,它将保持不变,直到您使用close(2)
释放它或者进程终止(以任何方式)。存储该值(全局,静态或自动变量)的地方并不介意。
所以最后答案是是。