unity網路學習記錄

2021-08-20 16:17:34 字數 1706 閱讀 1376

1、使用vs建立類庫(使用的是框架類庫),跟著建立乙個控制台程式用來開啟伺服器,這裡要新增類庫的引用。

2、在類庫下建立乙個伺服器類用作服務端使用,建立伺服器端的socket物件//using system.net.sockets;

///

/// 伺服器端的socket物件

///

private socket serversocket;

//  serversocket = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);

3、把開啟伺服器的封裝在start方法裡,網路多用捕捉異常來避免出現問題。

///

/// 用來開啟伺服器

///

/// 埠號

/// 最大連線數量

public void start(int port, int maxcount)

catch (exception e)

4、在控制台程式中呼叫start方法

server.start(6666, 10);

//盡量的把單獨的功能提取為單獨的方法,看起來整齊後期好維護

5、 使用非同步等待客戶端連線,多執行緒的使用防止伺服器出現問題

///

/// 開始等待客戶端的連線

///

///

private void startaccept(socketasynceventargs e)

bool result = serversocket.acceptasync(e);//如果返回true,表示還在執行處理的程序,false就是處理完成了

if (result==false)

}6、  得到客戶端物件,處理客戶端與伺服器之間的傳送和接收。給處理完連線註冊事件。

///

/// 接收連線請求非同步事件完成時觸發

///

///

///

private void accept_complete(object sender, socketasynceventargs e)

///

/// 處理連線請求

///

///

private void processaccept(socketasynceventargs e)

7、當要接受連線時,之後限制可訪問的執行緒數,using system.threading;下semaphore 的waitone函式,用來等待連線的執行緒,比如說總共可以連線10個,次函式會從0加到9 然後等待,不會多加,只會有退出留下空餘再加。

///

/// 限制可同時訪問資源的執行緒數

///

private semaphore acceptsemaphore;

在此處使用:

///

/// 開始等待客戶端的連線

///

///

private void startaccept(socketasynceventargs e)

//限制執行緒的訪問

acceptsemaphore.waitone(); 

bool result = serversocket.acceptasync(e);//如果返回true,表示還在執行處理的程序,false就是處理完成了

if (result==false)

}

9 24 Unity學習記錄

今天是正式開始學習的第乙個星期的結束,划水兩天,混一混乙個星期也過去了。遊戲跟著教程做了乙個半,另外乙個本來今天可以做玩的因為 冒險島2 開服划水劃的比較嚴重 計畫流產了。怎麼說呢,也算熟悉了一下untiy3d的環境,控制項和api還要學習的很多,untiy開發確實比自己亂做簡單多了,邏輯方面可以簡...

網路流學習記錄

文章更新中 費用流 再不冒個泡我都以為我退役了 luogup3376最大流模板 關於網路流的講解其實網上很多,具體的這裡就不再多說了,就說幾點新學網路流要注意的地方吧 cnt要賦上初值,要麼為 1,要麼為1,這樣它是從2或者0開始的,保證了每次異或後的兩個邊是對應的 大部分情況下,盡量使用dinic...

Unity 學習記錄HDRP渲染管線介紹

hdrp 渲染管線是作為unity的一種渲染方式,其渲染質量及其後期處理效果都有很大變化,也是在橋接使用brige軟體資源的必要渲染方式 安裝後會彈出乙個hdrp嚮導視窗,進行選擇場景修復 如果不是從模板建立的渲染 hdrp將原先的後處理效果集合進行了優化補充,使其更加的方便靈活使用,最主要體現在了...