作者kight (山中杂草一只鹿)
看板Visual_Basic
标题[.NET] 关於Socket传送与接收问题
时间Mon Apr 25 17:14:19 2011
小弟最进刚接触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