關於UE4處理UDP通訊接受的字串訊息

2021-09-13 20:05:18 字數 1389 閱讀 3726

2、下面來說伺服器:

伺服器接受訊息的時候利用我們制定的傳送規則把訊息分成兩個部分,節點split。節點屬性我就不介紹了,他的返回值left s既是傳送過來的ip位址,right s既是傳送過來的遊戲時間。

可是udp發訊息的時候丟包怎麼辦,我用了乙個笨辦法,我們來數數ip位址是長度多少的字串,例如192.168.0.1,,加上點正好十一位,我們就來加乙個判斷:

如果接受到的訊息的左值小於了十一位,肯定丟包了,就不處理這條訊息。如果大於十一位,證明至少ip位址是沒有丟失的。

3、我們再建立三個陣列,用來儲存客戶端ip位址,ip位址的ui,遊戲時間的ui,每次在這個陣列裡面新增乙個新的ip,就相當於客戶端在伺服器上註冊了一次,每當有新的ip註冊時,建立兩個ui,乙個用來儲存ip,乙個用來儲存遊戲時間。

因為是同時建立的,所以這些每個ip和ui是對應的,接受後續訊息的時候只需要去找對應ip引腳的ui就行了。

判斷ip位址的陣列是否為空,如果ip位址沒有丟包,且伺服器的ip位址陣列為空,就直接把這個ip加入到陣列裡。並且建立ui,加入到ui陣列。

如果不為空,就遍歷陣列,看ip是否已在陣列裡如果在就用發過來的字串的rights去設定對應引腳的遊戲時間ui的值。

在迴圈的時候如果找到的相同的,就不再迴圈,break此loop。利用contains來找傳送過來的字串是否有某個值。如果沒有找到,證明這是乙個新的合法ip,證明有新的客戶端開始傳送訊息了,就把這個ip加入到陣列裡,建立ui,如此迴圈。

4、如果客戶端結束遊戲,結束時會傳送乙個結束遊戲的資訊,在伺服器上加以判斷,如果接受到了客戶端結束遊戲的資訊,就移除對應ip陣列的值和ui。

效果很理想=,=

關於UE4中Log的使用

log的列印 藍圖中的log就是printstring這個節點,在這個節點中有乙個選項 print to log 只有勾選了或者選項,log資訊才能列印到資訊日誌中。log的檢視 首先應顯示出輸出日誌視窗 開啟路徑為 選單欄 視窗 開發者工具 輸出日誌 如何在輸出日誌中找到輸出資訊 藍圖中列印輸出的...

UE4中關於路徑的引用準則

ue4 中關於路徑引用 在一些指令需要載入檔案時,預設的引數一般是直接使用 檔案的string 型別的名字。但是,需要針對路徑做特殊的描述。include runtime core public misc paths.h cpp 檔案載入 fstring full fpaths convertrel...

pandas的學習4 處理丟失資料

import pandas as pd import numpy as np 有時候我們匯入或處理資料,會產生一些空的或者是 nan 資料,如何刪除或者是填補這些 nan 資料就是我們今天所要提到的內容.建立了乙個6x4的矩陣資料並且把兩個位置置為空.dates pd.date range 2013...