區域網UDP聊天程式桌面版

2022-02-14 21:50:35 字數 2098 閱讀 6995

最簡單的聊天程式:採用udp實現。學習用,無實用價值。

注釋很詳細就不再說明了,監聽的時候使用死迴圈,注意用到了跨執行緒操作控制項、強制結束執行緒。

實用委託實現執行緒安全的方式操作控制項,等待執行緒結束。

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.text;

using

system.windows.forms;

using

system.net;

using

system.net.sockets;

using

system.threading;

namespace

public

partial

class

form1 : form

private

void

textbox1_textchanged(

object

sender, eventargs e)

private

void

form1_load(

object

sender, eventargs e)

private

void

richtextbox2_textchanged(

object

sender, eventargs e)

thread th;

private

void

button1_click(

object

sender, eventargs e)

//儲存聊天記錄(因為沒有找到跨執行緒取控制項值的方法。)

static

string

messageinfo =""

;///

///傳送聊天記錄。

//////

聊天記錄

///發給對方的ip

///埠號。

void

sendmessage(

string

message,

string

toanyone,

intport)

//////

開始監聽

///void

serverstart()

}private

void

button2_click(

object

sender, eventargs e)

string

toanyone

=this

.textbox1.text;

intport

=int

.parse(

this

.textbox2.text);

sendmessage(

this

.richtextbox2.text,toanyone,port);

richtextbox2.text =""

;}//////

跨執行緒操作控制項

//////

delegate

void

settextcallback(

string

text);

private

void

settext(

string

text));}

else

}private

void

form1_formclosing(

object

sender, formclosingeventargs e)

private

void

richtextbox1_textchanged(

object

sender, eventargs e)}}

由於又要忙了,留下來做記錄。

區域網開發UDP

1.掛 asyncudpsocketdelegate 2.例項化 asyncudpsocket asyncudpsocket alloc init asyncudpsocket setdelegate self asyncudpsocket bindtoport 10250 error nil as...

區域網UDP丟包優化

之前一直沒考慮清楚為何接收到udp資料丟包的問題,當意識到這造成很大問題時便狂查資料,有以下結論 1.傳送方傳送的資料太快,導致udp輸入佇列溢位 系統會丟掉一些包 在應用程式看來是即是丟包。解決方法 1.想辦法提高應用程式對udp包的處理速度。2.提高udp輸入佇列緩衝區大小,可通過setsock...

WiFi Chat 通過網頁與區域網使用者聊天

就在剛才hacker news發起了一款即時通訊服務 wifi chat 的討論,這款基於網頁的工具能夠讓區域網使用者相互溝通。不用安裝任何軟體,通過瀏覽器即可完成。這讓我想到多年前流行的一款工具 飛鴿傳書 這是一款在windows下幫助區域網使用者即時溝通 傳輸檔案的一款客戶端軟體,無需任何設定 ...