socket 通信远程主机强迫关闭了一个现有的连接。

天天见闻 天天见闻 2022-03-07 通信 阅读: 488
摘要: 通信远程主机强迫关闭了一个现有的连接。每隔三秒向局域网内广播一次,当有重服务器上线时,向主服务器注册。“远程主机强迫关闭了一个现有的连接。是不是线程的互斥问题。1)考虑从服务器防火墙的问题2)SendVarData,如果数据量大,会阻塞,考虑新开线程做,并适当的Sleep3)保证client.Connect(ipep);之前可能存在的前一个连接已经关闭。可能造成线程阻塞。

socket 通信远程主机强迫关闭了一个现有的连接。急!!!在线等。

我最近写了一个局域网通信的程序, 用到了多线程和socket来传输文件、发送消息,主服务器的线程中有一个UDP广播, 每隔三秒向局域网内广播一次,当有重服务器上线时远程主机强迫关闭了一个现有的连接,向主服务器注册。 主服务器还可以控制从服务器, 向其发送消息, 但是, 问题出现了, 主服务器发送的消息,有些时候从服务器能收到远程主机强迫关闭了一个现有的连接, 有些时候就抛出异常 “远程主机强迫关闭了一个现有的连接。”这是什么问题,应该怎么解决啊。

UDP代码:

C# code

        public void sendUdp()
        {
            string str = "I'm running";
            UdpClient udp = new UdpClient(2525);
            try
            {
                while (true)
                {
                    IPAddress ipAdd = IPAddress.Parse("255.255.255.255");
                    IPEndPoint end = new IPEndPoint(ipAdd, 2020);
                    
                    try
                    {
                        byte[] sendByte = Encoding.Unicode.GetBytes(str);
                        udp.Send(sendByte, sendByte.Length, end);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                        Thread.Sleep(3000);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                throw;
            }
        }

TCP代码

C# code

        public void sendTcp(string ipAddress,string str) 
        {
            IPAddress ip = IPAddress.Parse(ipAddress);
            IPEndPoint ipep = new IPEndPoint(ip, 2025);
            //创建套接字   
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //连接到发送端 
            try
            {
                    client.Connect(ipep);
            }
            catch (Exception) 
            {
                MessageBox.Show("指定的从服务器已意外关闭, 链接不上");
            }
            if (client.Connected)
            {
                try
                {
                    this.SendVarData(client, Encoding.Unicode.GetBytes(str));
                }
                catch (Exception)
                {
                    MessageBox.Show("传输文件失败!");
                    throw;
                }
        public static int SendVarData(Socket s, byte[] data)
        {
            int total = 0;
            int size = data.Length;
            int dataleft = size;
            int sent;
            byte[] datasize = new byte[4];
            datasize = BitConverter.GetBytes(size);
            sent = s.Send(datasize);
            while (total < size)
            {
                sent = s.Send(data, total, dataleft, SocketFlags.None);
                total += sent;
                dataleft -= sent;
            }
            return total;
        }

是不是线程的互斥问题。 因为UDP 每隔三秒发送一次, 当我点击按钮进行消息发送TCP的时候由于线程冲突强制停止的, 我应该怎么解决?

------解决方案--------------------

学习...

------解决方案--------------------

1)考虑从服务器防火墙的问题

2)SendVarData,如果数据量大,会阻塞,考虑新开线程做,并适当的Sleep

3)保证client.Connect(ipep);之前可能存在的前一个连接已经关闭

------解决方案--------------------

三秒发一次。。。

如果数据量大。。可能造成线程阻塞。。。

------解决方案--------------------

学习下

------解决方案--------------------

探讨

在广播之前我能不能让UDP线程等待TCP发送完之后在开始呢》 应该怎么办。

------解决方案--------------------

参考远程主机强迫关闭了一个现有的连接

其他相关
四川开展“双万兆”技术试点 成都成全国首批“双万兆”试点城市

四川开展“双万兆”技术试点 成都成全国首批“双万兆”试点城市

作者: 天天见闻 时间:2024-05-19 阅读: 1
5月17日,四川省信息通信业以“数字创新促进可持续发展”为主题,举办2024年世界电信和信息社会日活动。四川省通信管理局党组书记、局长郑蕾在活动上介绍说,四川已建成西部地区规模最大、技术领先的信息通信网络;5G基站达到18.84万个,实现双千兆网络乡乡通达,工业园区万兆光网全覆盖。 ...
无线网桥哪个牌子的好

无线网桥哪个牌子的好

作者: 天天见闻 时间:2024-05-17 阅读: 1
在当今信息时代,无线通信技术的发展已经深刻改变了我们的生活和工作方式。而无线网桥作为连接远距离网络的关键设备之一,其选择对于建立稳定可靠的网络连接至关重要。然而,市场上存在着众多品牌的无线网桥,消费者往往面临着如何选择最适合的品牌的问题。隽凯世纪作为该领域的知名品牌备受关注。本文将结合对隽凯世纪网桥的分析,探讨无线网桥中哪个品牌更加优秀。 ...
大脑为何如此耗能比较计算与通信的代谢能效

大脑为何如此耗能比较计算与通信的代谢能效

作者: 天天见闻 时间:2024-05-01 阅读: 1
最近的研究发现,大脑在处理计算与通信两种任务时,代谢模式不同,且大脑通信的代谢成本远高于计算。研究领域:大脑能量消耗,最优计算,神经计算,信息处理年前可用的数据,发现大脑能量预算的划分略有不同——大脑50%的功耗用于与神经电信号活动(即计算和通信)无关的过程。...
四川工匠蔡远来:助力成都获评“5G卓越城市”

四川工匠蔡远来:助力成都获评“5G卓越城市”

作者: 天天见闻 时间:2024-05-01 阅读: 1
蔡远来,男,汉族,1987年2月出生,大学本科,高级工程师,四川移动公司网络优化管理员,擅长无线通信技术,从事本工种13年。2022年“四川省五一劳动奖章”“全国五一劳动奖章”获得者。...
信息新技术的产业场景在哪里?来听院士专家们的前沿研究理论

信息新技术的产业场景在哪里?来听院士专家们的前沿研究理论

作者: 天天见闻 时间:2024-04-24 阅读: 1
封面新闻记者 喻言 实习生 冉怡乐 6G、空天一体化通信、电磁技术的产业应用场景有哪些?近日,在西部科学城重庆高新区举行的2024信息系统电磁交叉前沿技术与应用会议上,多位两院院士、专家学者给出了他们的最新研究理论。 ...
2024 智能手表/手环 市场趋势全解读

2024 智能手表/手环 市场趋势全解读

作者: 天天见闻 时间:2024-04-15 阅读: 1
文章导读 2023 年全年智能手表、智能手环全球出货量 1.86 亿台,同比增长 2% 预计 2024 年全年智能手表、智能手环增长 10%,保持增长趋势 智能化、独立通信、户外运动是 2023 年全年的关键词 换机周期将至、产品体验提升等多种积极因素为 2024 年带来良好预期 转眼间,2023 年已经过去,我们踏入了崭新的 2024 年。 在过去的 2023 年中,智能手表、智能手环相关产业持续发展进步,具有新亮点的崭新产品倍出,为行业源源不断注入了发展的新活力。回望全年,我们看到了在传统性能上迭代突破的新品,也看到了试图在已高度成熟的智能手表/手环市场中进行突破性创新尝试的产品。...
我来说两句

年度爆文