Re: [問題] Socket的accept
現在我產生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)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 4 篇):