• 13249阅读
  • 15回复

qt中可以使用c socket库吗(具体如何使用呢) [复制链接]

上一主题 下一主题
离线succulent
 
只看楼主 倒序阅读 楼主  发表于: 2008-12-15
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
界面用qt来实现,但底层的一些代码,用c来实现,这样可以吗
[ 此贴被succulent在2009-01-16 14:50重新编辑 ]
离线mileden

只看该作者 1楼 发表于: 2008-12-15
当然可以的
离线succulent
只看该作者 2楼 发表于: 2008-12-15
那么,如果使用pthread,而不用qt自带的qthread,有谁这么尝试过吗
离线sevencat

只看该作者 3楼 发表于: 2008-12-15
当然可以。
战争就是和平,自由就是奴役,愚味就是力量
离线evoleci
只看该作者 4楼 发表于: 2008-12-15
C的通用性还是很值得信任的
[ 此贴被evoleci在2008-12-15 22:21重新编辑 ]
我们只是在经历着一些事情。
离线icelee
只看该作者 5楼 发表于: 2008-12-16
完全可以
程序人生
离线succulent
只看该作者 6楼 发表于: 2009-01-16
老问题还是要拿起来问一下
怎么用呢??
extern c??
或者如何
我编译的时候就过不去了
离线lj_0212

只看该作者 7楼 发表于: 2009-01-16
以前好像做过类似的。好像是这么干的:

extern "C" include {

}

把头文件都扔进去。
离线succulent
只看该作者 8楼 发表于: 2009-02-02
我后来直接在qt的头文件里把c的这些个h文件都给写了上去,包括socket等等之类的
不用extern方法
然后新建一个socket,没问题了
但是,要close这个socket时,出了错误提示,no matching function to
觉得很奇怪,建立socket的函数都没出错,为什么close时候不行呢

如果用extern的话,那则是完全不行,建立socket和close两个函数都无法识别
请问哪位高手有类似的简单的小例程吗,最基本的,发一小段我学习一下,看看究竟环境是怎么设置就行了,谢谢
离线succulent
只看该作者 9楼 发表于: 2009-02-02
我发现了问题的关键所在可能是
linux socket里的这些函数,比如close    connect
与qt里的函数貌似同名,所以调用时就出错
请问有什么好方法可以解决这一问题呢
只看该作者 10楼 发表于: 2009-02-02
引用第9楼succulent于2009-02-02 11:50发表的  :
我发现了问题的关键所在可能是
linux socket里的这些函数,比如close     connect
与qt里的函数貌似同名,所以调用时就出错
请问有什么好方法可以解决这一问题呢

namespace?
离线succulent
只看该作者 11楼 发表于: 2009-02-02
谢谢
现在我自定义了一个类,继承了QObject,因为发现如果不继承的话好像一直编译不过
close能用了,但是connect函数死活用不起来,QObject里头就有这个函数了,连接信号和槽时使用的,搜了下以前的帖子,用了::connect,ok了,请问这是什么道理呢
只看该作者 12楼 发表于: 2009-02-03
就是namespace的问题

你用的时候指定下namespace就没问题了
离线mysuli312
只看该作者 13楼 发表于: 2009-03-21
试试
::close
离线bailangxhao
只看该作者 14楼 发表于: 2012-05-29
  最近尝试把linux epoll 模型移植到qt 上,遇到跟楼主一样的问题,幸福的看到此贴,表示追寻共同学习进步来了,你最后怎么解决了?期待回复
月夜出没
离线bailangxhao
只看该作者 15楼 发表于: 2012-05-29
。。。哦,问题跑骗了,呵呵,问题一解决,和其他程序一样,直接 extern “c”即可,要注意的使 C socket 本身的执行流程会和qt 的main 流程可能冲突,可考虑进程和其他办法。
  我突然想到,epoll 本事最大的特点就使 “只管活跃的链接”,能直接通过事件定位到某一链接,省去轮寻时间,但是,如果用qt 的connect 也能同时确定具体链接啊,那么,难道说,qt 上connect 机制就不必要epoll机制了?汗
月夜出没
快速回复
限100 字节
 
上一个 下一个