Socket TcpClient 通信

 
Socket命令发送
复制代码
        public void LostLicense(LicenseInfo license)
        {
            var arr = Dao.QueryForList<Hashtable>(Dao.GetStatementName("LostLicense"), license);
            string socketIpPort = ConfigurationManager.AppSettings["socketIpPort"];
            if (arr != null && socketIpPort != null)
            {
                string[] strIp = socketIpPort.Split(':');
                IPAddress ip = IPAddress.Parse(strIp[0]);
                int port = int.Parse(strIp[1]);
                foreach (var i in arr)
                {
                    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    clientSocket.Connect(new IPEndPoint(ip, port));
                    var s = Convert.ToString(int.Parse(i["MNGINSID"].ToString()), 16).PadLeft(10, '0');
                    clientSocket.Send(HexStrTobyte("3C09" + s + "39FF"));
                    clientSocket.Close();
                }
            }
        }
View Code
复制代码

 

复制代码
       StringBuilder strHttp = new StringBuilder("http://minigps.cn/as?mt=0&p=1&needaddress=0&x=1cc-0-");
                            strHttp.Append(lbs.ElementAt(0));
                            strHttp.Append("-00");
                            var uri = new Uri(strHttp.ToString());//towerInfo.CellParas
                            var request = $@"GET {uri.PathAndQuery} HTTP/1.1
Connection:close
Host:{uri.Host}

";
                            var buffer = Encoding.ASCII.GetBytes(request);
                            using (var tcpclient = new TcpClient())
                            {
                                tcpclient.SendTimeout = CONST_TCP_SEND_TIMEOUT;
                                tcpclient.ReceiveTimeout = CONST_TCP_RECEIVE_TIMEOUT;
                                tcpclient.Connect(uri.Host, uri.Port);
                                tcpclient.Client.Send(buffer);
                                using (var stream = tcpclient.GetStream())
                                {
                                    //TCP,读取原始TCP数据
                                    using (var reader = new StreamReader(stream, Encoding.ASCII))
                                    {
                                        http = reader.ReadToEnd();
                                        reader.Close();
                                    }
                                    stream.Close();
                                }
                                tcpclient.Close();
                            }
复制代码

 

posted @   yufeiyunsui  阅读(240)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示