[問題] Socket的accept

看板C_Sharp作者 (沒有怎麼辦)時間17年前 (2006/12/10 01:12), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/4 (看更多)
try { Socket cbsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint serverhost = new IPEndPoint(IPAddress.Parse("210.58.5.192"), 9225); cbsocket.Bind(serverhost); cbsocket.Listen(10); Socket clientSocket = cbsocket.Accept(); String msg="Message from server...."; clientSocket.Send(Encoding.ASCII.GetBytes(msg)); } catch (SocketException ex) { textBox1.Text = ex.ToString(); } 抱歉 我是網路程式新手@"@ 請問一下為什麼這程式一執行會不能動(視窗沒反應) 要等client連上才會動 我看一本書是把 Socket clientSocket = cbsocket.Accept(); 這一行放在while(true)中 不過也沒寫為什麼= =|||(好爛的書) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.5.192

12/10 02:08, , 1F
因為會block直到Accept() return為止,也就是有人連上之後
12/10 02:08, 1F

12/10 02:09, , 2F
可以考慮開一個thread來處理Accept()
12/10 02:09, 2F

12/10 02:10, , 3F
寫在while(true)裡是一個client處理完後再accept下一個
12/10 02:10, 3F

12/10 02:29, , 4F
感謝^^
12/10 02:29, 4F
文章代碼(AID): #15UkvYDb (C_Sharp)
文章代碼(AID): #15UkvYDb (C_Sharp)