[.NET] 關於socket server question

看板Visual_Basic作者 (阿呆)時間13年前 (2012/04/27 20:56), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):應用程式專案 不好意思,想請教大家關於socket server question 編輯器:vb.net 2010 express 問題 :程式在loop時(while),結果會顯示不出來(畫面當機),但如果拿掉loop(while)就沒問題 程式碼如下: Public Sub Server_data() Dim server As Socket = Nothing server = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Dim localEndPoint As New IPEndPoint(IPAddress.Parse("172.21.104.147"), 2112) server.Bind(localEndPoint) server.Listen(10) While (True) Dim success As Boolean Dim recvbytes(1024) As Byte Dim acceptsocket As Socket = server.Accept() success = acceptsocket.Receive(recvbytes) If (success <> True) Then TextBox1.Text &= "accept socket is fail" & vbNewLine Else TextBox1.Text &= "accept socket is success" & vbNewLine End If ListBox1.Items.Insert(0, Encoding.UTF8.GetString(recvbytes)) End While server.Close() End Sub 只要將 while 與 end while拿掉,程式就可以正常傳送(不過只能傳一次) 我是打算改成loop,可是畫面會當機然後不動 板上如果有人知道,可否告知一下,謝謝!!! PS: 想請教板上各位大大,不知是有否有推薦書單可以看 主要我的vb.net大多是用在 網路程式、資料庫、與PLC 這三方面 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.46.93

04/27 21:29, , 1F
寫Socket的程式得開一個新thread來執行 才不會畫面像當掉
04/27 21:29, 1F

04/27 21:30, , 2F
在操作UI的時候要用Delegate 才不會失敗
04/27 21:30, 2F

04/27 21:33, , 3F
另外中文Socket的書也不多 就一兩本 內容普普 入門而已...
04/27 21:33, 3F

04/27 22:19, , 4F
沒看到迴圈終止條件?
04/27 22:19, 4F

04/29 23:52, , 5F
感謝大家回應,我會再找資料試看看,有問題會再請教大家
04/29 23:52, 5F

04/30 12:11, , 6F
你的問題在於多執行緒和ui的互動,與socket無關
04/30 12:11, 6F

05/01 18:48, , 7F
不是有一系列的BeginXXXX, EndXXXX可以用嗎~
05/01 18:48, 7F

05/01 18:48, , 8F
然後配合Control.Invoke應該就行啦@@"
05/01 18:48, 8F
文章代碼(AID): #1FcfUR53 (Visual_Basic)