在C/C++/ObjC编程语言中有没有啥方法获取 socket 是不是连接啊?就像C#中Socke

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C/C++/ObjC编程语言中有没有啥方法获取 socket 是不是连接啊?就像C#中Socke相关的知识,希望对你有一定的参考价值。

在C/C++/ObjC编程语言中有没有什么方法获取 socket 是否连接啊?就像C#中Socket.Connected一样。(什么方法都行)

参考技术A c语言
去搜socket(),bind(),listen(),accept(),connect(),setsocketopt()这几个函数.
我这有Unix网络编程资料,你要不?追问

要要要 谢谢啦

本回答被提问者和网友采纳

将 C 结构重写为 ObjC 类(C 结构与 ObjC 类)

【中文标题】将 C 结构重写为 ObjC 类(C 结构与 ObjC 类)【英文标题】:Rewriting C Struct to ObjC Class (C Struct vs ObjC Class) 【发布时间】:2013-11-12 16:28:30 【问题描述】:

我看了这篇文章:http://www.koboldtouch.com/display/IDCAR/Use+Classes+Instead+of+Structs

我已经在考虑我想在我的 ObjC 应用程序中使用类而不是结构,但文章说它需要更多的内存。

我还阅读了这个问题的选定答案: Class vs Struct for data only? 它说类中的变量默认为私有,但对于 C++,它们在 ObjC 中默认为私有吗?我认为不是因为如果我在 ObjC 中有一个 @property,那么我可以从另一个对象访问它。

最后,如果我只是要创建一个只实现 C 结构的对象,那么使用 @public 和 @property 有什么区别?

编辑

对于未来的读者,这三个答案都需要阅读,他们都回答了这个问题,但我必须选择并回答,所以这就是我选择一个的原因。

【问题讨论】:

Objective-C 对象需要一个类指针,类似于虚拟 C++ 类。我怀疑它可能到处都有更多字节的“gas”,尽管我从未见过对象结构的描述。 【参考方案1】:

struct 相比,我不会担心 Objective-C 类的额外内存需求,除非您在内存中存储大量对象。那么它可能值得考虑。使用 Objective-C 类可以获得其他好处。

WRT 到公共 vs 属性;您不希望对象之外的代码“通常”弄乱您的实例变量。在某些情况下,这并不重要,您可以使用@property/@synthesize 而不必担心,但是有时您可能想要验证分配的值或在分配特定值时执行某些操作。从一开始就使用属性允许您稍后更改它,而不会影响任何使用您的类的代码。

【讨论】:

【参考方案2】:

先做简单的方法,然后如果你发现分析实际运行的代码内存占用太大,那么重新考虑......

基本上,Obj-C 类是一个结构。它是一个结构体,有一个指向类对象的指针,以及超类声明的所有 ivars,以及那个类。

通过使用类和对象来简化内存管理,您获得了很多好处,如果不使用集合类,您将是愚蠢的(除非在非常特殊的情况下)

对于第二个问题...您通常总是希望使用 obj->iVar 以上的属性

这样可以保持封装,还允许在 setter 上进行验证...并且还会触发 KVO 通知。

所以基本上:

除非有理由不使用,否则请使用对象/类。 使用属性,除非你有理由不这样做。

【讨论】:

【参考方案3】:

它说类中的变量默认为私有,但它 对于 C++,它们在 ObjC 中是否默认为私有?

Objective-C 中@interface 中声明的实例变量默认为@protected。在 Objective-C 中以 @implementation 声明的实例变量默认为 @private。您可以像在 C++ 中一样手动使用@public@protected@private

我认为不是因为如果我在 ObjC 中有 @property,那么我可以访问它 来自另一个对象。

属性访问正在调用方法。它与实例变量访问完全不同。

【讨论】:

以上是关于在C/C++/ObjC编程语言中有没有啥方法获取 socket 是不是连接啊?就像C#中Socke的主要内容,如果未能解决你的问题,请参考以下文章

c/c++里将以空格隔开的字符放进数组的函数

C语言指针/引用/取值

c语言编程题 计算圆周率的近似值,计算公式为:e=1+1/1!+1/2!+1/3!+1/4!+1/

3. 用任意一种编程语言(C/C++/Java/C#/VB.NET)写出任意一种你所知的排序算法(比如:冒泡排序, 归并排

c语言//为啥这个结构体类型不匹配?

Linux编译C语言时出错 /home/zwlong/222/LESduct2.c:323: undefined reference to `sqrt'