Qt與python程序之間的TCP通訊

2021-08-20 13:19:09 字數 1143 閱讀 7289

程序間通訊(ipc-interprocess communication)是一組程式設計介面,能夠讓程式設計師協調不同的程序,使之能在乙個作業系統裡同時執行。這使得多個程式能夠在同一時間裡互相協作,共同完成使用者的某項任務。

我們知道qt可以通過qlocalsocket和qlocalserver來建立本地的tcp/ip,和其它程序進行通訊。詳細資料請檢視部落格:

#include "message.h"

#include message::message(qobject *parent) : qobject(parent)

void message::newconnectslot()

void message::getmessage()    //作為伺服器獲取

void message::postmessage(qstring target, qbytearray msg)    //作為客戶端傳送

else

}else

}

python也可以做本地的tcp/ip通訊,詳細資料請檢視部落格:

import socket

import os

socket_server = "/tmp/yike_socket"

server = socket.socket(socket.af_unix, socket.sock_stream)

if os.path.exists(socket_server):

os.unlink(socket_server)

server.bind(socket_server)

server.listen(1)

print('1')

while true:

connection, address = server.accept()

data = connection.recv(1024)

print(data)

connection.close()

這裡有個問題是qt其實是沒有明確指定socket檔案的位置的,listen()函式只是指定了監聽位址的名字,這點曾讓我很懵逼,實際測試發現其實我監聽的yike_ui是生成在linux系統的/tmp目錄下的,所以python中也得指定監聽的socket檔案位址在/tmp目錄下。

程序與執行緒之間的區別

程序是併發執行的程式在執行過程中分配和管理資源的基本單位,是乙個動態的概念。每個程序都有自己的位址空間 程序空間 程序空間的大小與處理機位數有關。程序至少有5種基本狀態 初始態,執行態,等待狀態,就緒狀態,終止狀態。在多使用者環境下,乙個伺服器通常需要接受大量的不學定數量使用者的併發請求,而為每乙個...

執行緒之間和程序之間的同步

今天學習的內容為 利用互斥事件來控制線程之間 程序之間的同步問題。其實,程序之間的同步也就類似於執行緒之間的同步。互斥事件的作用就是為了保證任乙個時間內,只有乙個執行緒對對公共資源進行操作。下面來看一下執行緒之間的同步,如果是在乙個程序內的執行緒同步問題的話。這樣的例子很多,我就舉乙個最簡單的,執行...

程序之間 執行緒之間的通訊方式

1 程序間的8中通訊方式 1 無名管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。2 2 高階管道 popen 將另乙個程式當做乙個新的程序在當前程式程序中啟動,則它算是當前程式的子程序,這種方式我們成為高階管道方...