关于C#中socket的问题 接收不到数据
各位大侠:
小弟一事不明,向各位大侠请教:
问题如下:
小弟最近在做一个无线数据传输项目,底层硬件已经做好,并且承包方做好一个delphi程序,可以和底层硬件进行数据通讯。我们领导要我做一个C#的上位机,使用C#中的socket。
我按着网上的socket教程,一步步写下来,部分代码如下:
1)………………………………………………Form Load事件
IPAddress ServerIp = GetServerIP();//获得IP地址
IPEndPoint iep = new IPEndPoint(ServerIp, setPort);//建立套接字
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);//绑定
2)………………………………………………………………………………………监听事件
socket.Listen(20);//开始监听 挂起数为20
socket.ReceiveTimeout = 1000000;//
newSocket = socket.Accept();//Socket
newSocket.ReceiveTimeout = 1000000;//
msgTime = DateTime.Today.ToShortDateString() + " " + DateTime.Now.ToLongTimeString();//
msg = msgTime + " 收到一个新的TCP连接:" + serverIp.ToString() + "-" + serverport.ToString();//
// ThreadFuntion();//唤醒 进行文本框等控件的更新
while (true)
{
try
{
newSocket.Receive(byteMReceiveOne);
………………//省去了翻译byteMReceiveOne的代码
newSocket.Send(byteMReceiveOne);
}………………
……………………
按着协议的约定,newSocket.Send(byteMReceiveOne)中的byteMReceiveOne含有心跳频率。和硬件一起来的delphi程序就可以按着心跳接收发送数据并且可以进行数据操作,但是我也是按着协议发给下位机,他根本就不返回啊;而且有时候根本收不到下位机首次发来的数据包,很是郁闷啊
哪位好心的大侠帮帮我啊,困扰我很久了,我的Q342078131,谢谢非常着急,百度上我也找了N久了