‘壹’ window下的QT5可以用linux下的C函数吗,例如linux网络编程里面的socket,li
可以用 但你问题没说清楚 不知道怎么给你解决
‘贰’ Ubuntu下使用Qtcreator编写C程序,发现包括socket等多个库不能自动补全,应如何设置
解决方法:
1、打开Qt Creator -> 【tools】 -> 【options】
在里头找到environment -> Keyboard
2、找到【TextEdit】
3、修改其中的【CompleteThis】命令,把快捷键【Ctrl】+【Space】 改为 【Alt】+【/】
若是初学Linux的话建议看看《Linux就该这么学》这本书。
‘叁’ linux QT socket编程,严重求助!
实现楼主的功能可以使用QTcpSocket类,QNetwork模块,详情可以参见帮助文档。
有事楼主可以PM我~祝愉快~
‘肆’ qtcpsocket和linux socket的区别
前者跨平台,后者不跨平台。
前者只用于tcp协议通讯,后者可以使用多种协议和模型通讯。
‘伍’ 谁能给一个 Qt 跟 java 用socket通讯的例子,要求java 做服务端,qt 做客户端,要求双方都能实时显示对方发过
提供一个聊天功能的给你
import java.net.*;
import java.io.*;
class My1 extends Thread
{
private Socket skt;
public My1(Socket skt)
{
this.skt = skt;
}
public void run()
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));
for(;;)
{
if(br.readLine()==null) {break;}
System.out.println(br.readLine()); // 阻塞
}
}
catch(Exception e)
{
System.out.println("对方断线!");
}
}
}
class My2 extends Thread
{
private Socket skt;
public My2(Socket skt)
{
this.skt = skt;
}
public void run()
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(skt.getOutputStream());
for(;;)
{
pw.println("姓名====>:"+br.readLine()); // 阻塞
pw.flush();
}
}
catch(Exception e)
{
System.out.println("对方断线!");
}
}
}
public class Good
{
public static void main(String[] args) throws Exception
{
//连接的目的是:获得Socket对象
Socket skt;
System.out.print("请输入<port> 或者:<ip>,<port> ");
// 先选择角色
String[] ss = new BufferedReader(new InputStreamReader(System.in)).readLine().split(",");
if(ss.length==1)
skt = new ServerSocket(Integer.parseInt(ss[0])).accept();
else
skt = new Socket(ss[0], Integer.parseInt(ss[1]));
System.out.println("连接到:" + skt.getInetAddress().getHostAddress());
// 连接建立,角色消失
new My1(skt).start(); //读网络
new My2(skt).start(); //读键盘
}
}
‘陆’ c++ windows QT 环境下怎么调用 windows socket
如果只开发windows平台的程序,那么选择MFC/WTL/VCL都是严格的比qt好。
qt完全的面向对象和并且完全使用消息模型,但它的代码模型(qt大量使用虚函数,而且必须有个代码预处理过程),对于喜欢效率和别的方面的人来说,qt并不好,qt用的人也不多,所以虽然的事件模型简单,但开发时能获取的帮助信息并不多,而且qt的UI模型不太一样,不能实现native功能(不好画出很花哨的界面效果)。
在linux下开发,目前没有一个好的ui的ide(gnome和wx的稳定性还不能和qt相比,而且也没有好的集成环境)。所以在linux下,廖化为先锋,qt是比较好的选择(不过qt是商业软件,有版权费的,我以前一个公司做EDA软件,追求跨平台,所以选择qt)。
‘柒’ 求QT大神救命啊,在linux系统下的,用Socket设计一个软件,能实现ping功能,要有界面的。
ping使用的是ICMP协议,而Qt中没有现成的处理ICMP协议的类。所以使用Qt就是用来做界面的,ping的功能是用C来完成的。
给你两个思路:
思路1. 使用linux系统命令ping。 你的程序中fork一个新进程,在新进程里面通过system("ping xxxx");的方式来调用系统ping命令,然后把ping命令的输出通过管道输入到你的程序中来。
思路2. 从网上找一个c语言写的现成的ping源代码,有很多的。看懂了以后,把ping源代码集成到你的代码中(把ping的main函数改名字,变成你的内部函数),注意输出数据。这样你的程序就有个ping功能。因为Ping会堵塞的,最好不要在画面线程中运行。
‘捌’ QTsocket的接收问题,用Linux发送数组数据时,QTsocket接收错误
接收函数内,一开始就readAll(),已经把数据都读取了,所以后面就没有可读数据了,所以后面不用判断bytesAvaliables()。
接收的时候,不要直接接收到QString中。应该先读取一个长度值(quint16),再根据长度值去读取QByteArray,再把读取到的QByteArray放到QString中。然后再判断bytesAvaliables是否还有剩余。有剩余,就再接收长度值+QByteArray。。。。
‘玖’ qt的socket和linux的socket的区别
只有在recv阻塞socket的时候,才有意义。你已经是non-blocking socket了,还设timeout干啥。 如果你是想要设置 select 的 timeout,应该在调用 select 时候