在centos7中,网络核心3的tcpclient无法发送和接收数据

该代码在Windows下运行良好,但是将其发布到CentOS 7时没有响应

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var client = new TcpClient();

            client.Connect("192.168.126.1",6378);

            var ns = client.GetStream();

            Queue<byte[]> queue = new Queue<byte[]>();

            Task.Run(() =>
            {
                var data = new Byte[10240];

                while (client != null && client.Connected)
                {
                    try
                    {
                        if (ns.DataAvailable)
                        {
                            var len = ns.Read(data,data.Length);

                            if (len > 0)
                            {
                                queue.Enqueue(data.Asspan().Slice(0,len).ToArray());
                            }
                        }
                        else
                        {
                            Thread.Sleep(1);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("接收数据发生异常:" + ex.Message);
                    }

                }
            });

            Task.Run(() =>
            {
                List<byte> datas = new List<byte>();

                while (client != null && client.Connected)
                {
                    if (queue != null && queue.Count > 0)
                    {
                        if (queue.TryDequeue(out byte[] data))
                        {
                            datas.AddRange(data);

                            while (datas.Count > 2)
                            {
                                var dr = datas.AsReadOnly();

                                var index = dr.IndexOf(13);

                                if (index >= 0 && dr.IndexOf(10) == index + 1)
                                {
                                    var len = index + 2;
                                    Console.WriteLine(Encoding.UTF8.GetString(datas.Take(len).ToArray()));
                                    datas.RemoveRange(0,len);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        Thread.Sleep(1);
                    }
                }
            });


            var cmd = $"*2{Environment.NewLine}$4{Environment.NewLine}info{Environment.NewLine}$3{Environment.NewLine}all{Environment.NewLine}";

            Console.WriteLine($"cmd:{cmd}");

            var data = Encoding.UTF8.GetBytes(cmd);

            ns.Write(data,data.Length);

            Console.WriteLine($"cmd:sended");


            Console.ReadLine();
        }
    }
}

有人知道发生了什么吗? 谢谢

ssnt321 回答:在centos7中,网络核心3的tcpclient无法发送和接收数据

This is the running rendering of windows and centens7

This print is windows server,centos7 client data transmission

本文链接:https://www.f2er.com/3051849.html

大家都在问