各路大佬,大家好!
我現在用QT寫了一個類似于QQ的程式,客戶端之間通訊使用的是udp。
如果我同時運行兩個程式,也是就是登陸兩個賬號,他們之間是要使用單播還是廣播發訊息?我了解到單播需要指定ip地址和埠,但是因為我只有一臺主機,ip地址是一樣的。我覺得無法完成單播。(如果可以使用單播,請大佬指點)我就嘗試往廣播上嘗試。
現在,我是使用了廣播發訊息,每個登陸的客戶端根據賬號設定不同的埠,例如賬號的后四位,前提埠號不相同,然后B想要給A發訊息時,點擊A的頭像,獲取A的埠號,在聊天視窗廣播的發送(指定了埠號)。
例如,udpSocket->writeDatagram(data,data.length(),QHostAddress::Broadcast,8889);
A登陸后一直監聽自己的埠,有訊息進來時就可以讀取訊息,但是現在的問題是不能確定是誰發來的。就是B確實可以給A發訊息。A也能收到,但是卻不知道是誰發來的。
但是我又因為只有一個主機,只有一個ip,目前沒有思路做到指定ip地址進行單播。請問這個問題需要怎么解決呢?
對于現在使用的廣播,我想了一個辦法,如果廣播發訊息的話,能不能在發送的訊息里,把自己的賬號帶上,因為我代碼做的比較簡陋,設定好友上限為10個,賬號都是唯一確定的。能不能接收訊息后,進行決議,讀出賬號,進而判斷是哪一個好友發的訊息,既能讀取埠號把訊息寫入聊天視窗,顯示的訊息又不帶賬號。
uj5u.com熱心網友回復:
補充:我想到同一臺電腦可以登陸兩個QQ賬號,他們之間的通訊是什么樣的呢?這兩個qq的ip地址不會相同嗎?因為學習的不夠,還有很多地方不夠了解。還望老師們不吝賜教。uj5u.com熱心網友回復:
是不是UDP 發送資料,資料中就含有ip源地址和源埠?uj5u.com熱心網友回復:

現在可以取到 源ip地址和port了 但是明明只發送了“1”,為什么顯示那些東西?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/267576.html
標籤:網絡通信
上一篇:計算機ip地址,子網掩碼相關問題
