草庐IT

c - struct sockaddr_un 与 sockaddr

coder 2023-04-29 原文

struct sockaddrstruct sockaddr_un 有何不同?

我知道我们在客户端-服务器模块中使用这些结构,将套接字绑定(bind)到套接字地址。我们使用强制转换运算符来接受 struct sockaddr_un

我想知道它们有多么不同/相似,以及为什么要使用 cast 运算符?

最佳答案

“struct sockaddr”是一个通用定义。它被任何需要地址的套接字函数使用。

“struct sockaddr_un”(“Unix 套接字”地址)是一种特殊的地址族。

更常见的“struct sockaddr_in”(“Internet 套接字”地址)是另一种特定的地址族。

强制转换允许套接字 API 接受一个公共(public)参数类型,该类型实际上是几种不同的实际类型中的任何一种。

这是一个很好的链接,显示了几个不同的地址族定义:

http://www.cas.mcmaster.ca/~qiao/courses/cs3mh3/tutorials/socket.html

关于c - struct sockaddr_un 与 sockaddr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689925/

有关c - struct sockaddr_un 与 sockaddr的更多相关文章

  1. ruby - Un-monkey 修补 Ruby 中的类/方法 - 2

    我正在尝试对我用Ruby编写的一段调用File.open的代码进行单元测试。为了模拟它,我将File.open修改为以下内容:classFiledefself.open(name,&block)ifname.include?("retval")return"0\n"elsereturn"1\n"endendend问题是我正在使用rcov来运行整个过程,因为它使用File.open来编写代码覆盖率信息,它获取的是monkeypatched版本而不是真实版本。我怎样才能取消monkeypatch这个方法以将它恢复到原来的方法?我试过乱用alias,但到目前为止无济于事。

  2. ruby - 是否有可能 'unload' ('un-require' ) 一个 Ruby 库? - 2

    我希望加载一些库,让它们做一些工作,然后执行与require相反的操作,以避免以后出现兼容性错误。我不想转储到文件并重新启动shell,因为创建的对象(例如data)可以由我的其他库很好地处理,只是不存在早期我要卸载的那些。有人有任何建议或知道这是否可行吗?Aconversationfrom2006除了“看起来Webrick设法以某种方式做到这一点”之外,没有得出太多结论。有问题的库是Google_driveandNokogiri(电子表格处理库Roo依赖Google_drive进行在线电子表格读/写,如该链接所述)。 最佳答案 正

  3. javascript - "Un-Angularize"JS对象的快速方法 - 2

    当使用双向绑定(bind)时,Angular将expando属性、“散列”等添加到我的深层对象结构中。这很好,但我有兴趣检索我的对象树的JSON快照,其中只包含最初属于那里的东西。Angular是否提供了一种获取绑定(bind)对象的“原始”版本的方法?(我不想在绑定(bind)开始之前只存储“原始值”,因为我想反射(reflect)通过UI所做的任何更改。) 最佳答案 简答:有一个很好的内置函数:angular.toJson(yourObj);更详细的解释:angular.toJson和JSON.stringify之间的唯一区别是

  4. json - 嵌套的Json Array在golang中构造un-marshalling - 2

    我主要关注在golang中解码以下JSON数组。{"status":{"code":"SUCCESS"},"result":{"total_records":1,"records":[{"last_modified_timestamp":1501209015807,"dns_servers":null,"is_secured":false,"nis_domains":null,"storage_platform_resource_key":"e1ee32f9-6576-11e7-82a8-00a098697714","name":"vs1","nis_servers":null,"cr

  5. 来自 bytes.Reader 的 Golang un-gzip - 2

    我有一个文件结构,它包含一个主体,它只是一个*bytes.Reader我在结构上有两个方法Zip()error和UnZip()错误。当我调用Zip时,它应该压缩将压缩数据存储在正文中的文件,我应该能够在同一文件上调用UnZip并将解压缩数据存储在正文中。我的最小例子是在Playground上。https://play.golang.org/p/WmZtqtvnyN我能够很好地压缩文件,看起来它正在做它应该做的事情;但是,当我尝试解压缩文件时,我得到了unexpectedEOF我已经研究了好几个小时了。非常感谢任何帮助。 最佳答案 我

  6. java - JAXB un/marshalling : Is there a difference between using arrays and lists? - 2

    我对JAXB还很陌生,很想了解它的更多信息。我注意到,在编码时,数组和列表中对象的XML表示是相同的。我感兴趣的是JAXB在取消/编码时如何处理这两种数据结构,以及是否最好将其标准化以使用一种而不是另一种?如果是这样,两者之间有什么区别(性能方面等)?另外,在为我的元素选择容器时我应该考虑什么?如有任何信息,我们将不胜感激。谢谢! 最佳答案 在XML表示中,数组和List具有相同的形式。解码XML时,JAXB将选择您在Java类中的类型。可以将集合解码为从List编码的数组,反之亦然。数组和List都各有利弊。使用对您的目的更好的东

  7. c - 在函数中传递指向 SOCKADDR_IN 和 SOCKET 的指针 - 2

    我有一个函数createServerSocket()。多个线程可以访问此函数以创建它们的套接字。我希望每个线程向createrServerSocket()函数传递三个参数,一个socketIdentifier、*sockaddr_in*和特定的端口号,所以每个线程都有一个唯一的套接字。为此,我将socketIdentifier、*sockaddr_in*和特定的端口号作为指针传递给createrServerSocket()函数,以便创建的socketIdentifier和套接字必须可以在线程内访问.下面是我的代码片段:VOIDcreateServerSocket(SOCKADDR_IN

  8. c - getaddrinfo 何时返回列表中的多个 sockaddr 结构? - 2

    我正在处理我找到的一些代码,我试图理解其中的for循环逻辑。似乎没有使用for循环,它总是会中断。所以我不明白从getaddrinfo()返回什么样的信息会导致它再次循环并检查某些东西?问题:基本上,这个for循环试图完成什么?在我看来,它只是检查列表是否不为NULL,因为从来没有发生循环。tcp_ctx*tcp_new_ctx(INTfamily,CHAR*host,CHAR*port){structaddrinfo*list=NULL;structaddrinfo*e=NULL;structaddrinfohints;tcp_ctx*c=NULL;WSADATAwsa;INTon=

  9. c++ - 错误 C2011 : 'sockaddr' : 'struct' type redefinition. 请参阅 'sockaddr' 的声明 - 2

    这个问题在这里已经有了答案:C++RedefinitionHeaderFiles(winsock2.h)(15个答案)关闭6年前。我使用VisualStudio2012并尝试获取静态库UDT开始工作。不幸的是,我无法编译将UDT库链接到自身的项目,我在WindowsSDKheader中收到159个关于类型或宏重新定义的奇怪错误。c:\programfiles\windowskits\8.0\include\shared\ws2def.h(96):warningC4005:'AF_IPX':macroredefinition2>c:\programfiles\windowskits\8.

  10. python - 如何让 tkinter 显示这些 un​​icode 字符? - 2

    我正在努力让它正确显示unicode:?????????????.???嗯,这个字符范围。这是'MathematicalAlphanumericSymbolsUnicodeblock'.关于这些角色,他们对一个字母使用两个转义符,所以有点奇怪?????????????.???=\uD835\uDC12\uD835\uDC13\uD835\uDC00\uD835\uDC02\uD835\uDC0A\uD835\uDC0E\uD835\uDC15\uD835\uDC04\uD835\uDC11\uD835\uDC05\uD835\uDC0B\uD835\uDC0E\uD835\uDC16.

随机推荐