各位大侠:
    小弟一事不明,向各位大侠请教:
    问题如下:
        小弟最近在做一个无线数据传输项目,底层硬件已经做好,并且承包方做好一个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久了