Re: [問題] Socket的accept

看板C_Sharp作者 (沒有怎麼辦)時間17年前 (2006/12/10 11:58), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/4 (看更多)
現在我產生thread來accept 因為要新弄一個物件 我把兩個textbox當做新物件的private member 我程式碼中的Server is Ready...可以傳到client了 但是client傳回來的字要顯示在textbox時 會有錯誤說建textbox的thread 和我這個thread不一樣 也就是我下面try裡面有comment的那一行會出錯 要寫一個簡單的兩人互傳文字的小程式還真是困難重重@"@ class dealoneconnect{ public dealoneconnect(Socket mainsocket, TextBox inputbox, TextBox outputbox) { foruser = mainsocket; this.outputbox = outputbox; this.inputbox = inputbox; } public void work(){ Socket clientSocket = foruser.Accept(); String msg="Server is Ready..."; clientSocket.Send(Encoding.ASCII.GetBytes(msg)); byte [] cometext=new byte[1024]; while (true) { try { if (clientSocket.Receive(cometext) != 0) //outputbox.Text = Encoding.ASCII.GetString(cometext); } catch (SocketException ex) { outputbox.Text = ex.ToString(); } } } private Socket foruser; private TextBox outputbox; private TextBox inputbox; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.5.192

12/10 12:36, , 1F
我找到相關文件了~~
12/10 12:36, 1F
寫是寫出來了 不過還不是很懂... private void SetText(string text) { if (this.receiveBox.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, text); } else { this.receiveBox.Text += "\r\n" + text; } } (我的outputbox改成receiveBox) this.Invoke是怎麼叫 產生receiveBox的thread來把text載入呢?? ※ 編輯: Arton0306 來自: 210.58.5.192 (12/10 19:00) ※ 編輯: Arton0306 來自: 210.58.5.192 (12/10 19:01)
文章代碼(AID): #15UuO0rR (C_Sharp)
文章代碼(AID): #15UuO0rR (C_Sharp)