看板 C_Sharp 關於我們 聯絡資訊
※ 引述《hsm926 (韓森慢)》之銘言: : 如題我在寫server和client時,一旦server開始listener時 : 視窗就會卡住,直到接受到client端的資料,並處理完之後 : 關閉socket和timer才會恢復,並顯示運算結果… : 這是我socket寫的語法 : 一開始宣告 : Socket socketForClient; : TcpListener tcpListener; : NetworkStream networkStream; : StreamWriter streamWriter; : StreamReader streamReader; : 按start後,接下面 : tcpListener = new TcpListener(1234); : tcpListener.Start(); 峎就沒碰,大概是這邊?當Server端開始監聽特定port時(tcpListener.Start) 目前程式的執行序(Thread)就被佔用住了,所以才會造成你覺得視窗卡住的感覺 你可以參考一下TcpListener是否有非同步的監聽方法(StartXXX, EndXXX這類) 如果想了解這種非同步的程式執行方式,還得看看MSDN相關文章囉 : socketForClient = tcpListener.AcceptSocket(); : networkStream = new NetworkStream(socketForClient); : streamWriter = new StreamWriter(networkStream); : streamReader = new StreamReader(networkStream); : 接收並處理完之後 : streamWriter.Flush(); : timer1.Enabled = false; : socketForClient.Close(); : 麻煩專業的高手 幫忙解答…問題出在哪? : 小弟能力不足,MSDN看不是很懂… -- XBOX LIVE ID: liunate 目前常玩的連線有: GoW2, Halo3 家裏居住地區有幸可以牽光纖雙向5M/5M 開站應該大家會很順,歡迎來連線 :] 萬年徵求長期組隊中手以上GoW公開網路遊戲、Halo3排名隊友 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.50.58.68
EricTsai:或是開另一個thread處理連線,我都這樣,因為非同步不熟 09/24 20:25
hsm926:請問另開thread怎麼做呢?非同步…我一直看msdn還是不太會 09/25 03:47
hsm926:可以提供簡單的範例或是較清楚的網頁嗎…感謝! 09/25 03:49