[.NET] 關於Socket傳送與接收問題

看板Visual_Basic作者 (山中雜草一隻鹿)時間13年前 (2011/04/25 17:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
小弟最進剛接觸Socket,但是碰上了一點問題.. 最近在寫一隻程式,其目地是要把連在NPort的測量機器的值讀回到電腦中.. 我是使用Socket傳送一到指令經由Nport送到測量器端,測量器收到指令後會把值回傳到 NPort,在傳送到電腦中,如果傳送的指令都正確的話,NPort都會把值回傳到電腦中.. 可是問題來了,如果傳送的指令測量器無法辨示而無回傳值,接下來不論我傳什麼指令, 就算是正確的指令,NPort都沒有收到我傳送的指令,除非我把Socket斷線後重新New一個 Socket才有辦法,這到底是什麼原因呢??當我直接始用RS232連測量器時,就算有錯誤的指令 只要後來有輸入正確的指令,測量器都會回傳值回來,我在想是NPort的問題還是Socket的 問題...懇請大家指導... 程式碼如下: Private RemoteIP As String = "192.XXX.XXX.XX" Private RemotePort As Integer = 4002 Private Server As New Socket(AddressFamily.InterNetwork, SocketType.Stream, _ ProtocolType.Tcp) Dim ServerIPAdress As IPAddress = IPAddress.Parse(RemoteIP) Dim ServerPort As NEW IPEndPoint(t(ServerIPAdress, RemotePort) Dim ReceiveData(100) As Byte Dim Receivestring As String = "" Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim f As Byte() = System.Text.Encoding.ASCII.GetByte ("$C,DR,3*64") '傳送的指令 Server.Send(f) System.Threading.Thread.Sleep(1000) If Server.Available Then Server.Receive(ReceiveData) Receivestring = Encoding.ASCII.GetString(ReceiveData) MsgBox(Receivestring) End If End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.20.115.210
文章代碼(AID): #1DjJjkTp (Visual_Basic)