我明白的Winsock是用于Windows操作系统的网络和BSD是Mac OS和Unix。是否有某种类型的“通用”套接字适用于上述三种操作系统中的任何一种?或者,服务器是否必须将两个套接字以某种方式并入其中,以便与不同OS的客户端兼容?如果你避免一些更高级的功能网络跨多个操作系统
1
A
回答
1
Winsock和BSD套接字是两个类似的API的名字既实现同样的事情:TCP/IP套接字,而这又是TCP连接或UDP数据报流的终点。由于实际传输由TCP/IP RFC定义,因此它们可以互操作。因此没有必要在Unix上使用Winsock实现,或者在Windows上使用BSD套接字实现。事实上,后者就是Winsock或多或少的,在这里和那里模成一些误解。
总之,你的问题并没有真正意义。
0
Winsock的是BSD兼容。诀窍是在处理非字节数据时要考虑endianess。取决于您的架构和语言,浮点可能会变得棘手。 char数组将保持事物的可预测性,但这可能是有限的。如果遵循协议,则只需要一台服务器。
1
套接字是插座,他们只是泵数据。因此,您可以在Windows上使用Java编程服务器,在BSD上使用C编程的客户端,他们仍然可以相互通信。
进行交叉编译,而无需使用第三方库,你可以更多或更不容易通过使用一些的#ifdefs做到这一点,多看@http://tangentsoft.net/wskfaq/articles/bsd-compatibility.html
另一种方法是使用第三方库,可能最简单的方式,可以发挥其他优势,如更先进的功能等。 UDT让人想起,但还有其他的。 (http://udt.sourceforge.net/)
1
这里有一个小秘密:Winsock的是基于BSD套接字。除了初始化和关闭winsock库之外,BSD和Windows套接字之间的实际网络代码库是相同的。
相关问题
- 1. 删除跨多个操作系统
- 2. QEMU客户操作系统中的网络如何工作?
- 3. 多操作系统DBMS
- 4. 多核和操作系统
- 5. Xcode iPhone操作系统多个版本
- 6. 多个操作系统安装
- 7. 操作系统如何知道哪个网络接口用于互联网?
- 8. 网络和操作系统基础知识的好书
- 9. 获取网络终端的操作系统版本(JAVA)
- 10. Unix操作系统中的网络连接意识
- 11. 操作系统
- 12. 操作系统在放弃网络流量之前存储了多长时间?
- 13. 操作系统应该为网络脚本提供多少访问权限?
- 14. jQuery Ajax跨浏览器/跨操作系统
- 15. 网站是否依赖操作系统?
- 16. Android操作系统中的多操作系统引擎构建失败
- 17. 多操作系统与SIngle操作系统电话和服务器开发
- 18. FASM操作系统
- 19. Linux操作系统
- 20. 操作系统中
- 21. 操作系统 - TLB
- 22. 网络监控系统
- 23. 网络登录系统
- 24. 将rpm从一个操作系统复制到另一个操作系统
- 25. 当主机操作系统没有网络连接时,如何在虚拟PC中为托管操作系统设置网络连接?
- 26. Virtualbox客户操作系统 - 连接到本地网络,但不是互联网
- 27. Android操作系统更新系统
- 28. “网络共享”在法语Windows操作系统上不起作用
- 29. 多任务网络操作android
- 30. 预定义为iPhone操作系统和Mac操作系统
我不知道他们是如此相似,这是我的问题的一个利益点。 – LucasS
@LucasS他们的全部目的是相似的。我通过iPad或Windows笔记本电脑在这里发帖:服务器可能是运行Java的Solaris机器。这就是互联网。 – EJP