『壹』 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 時候