【问题标题】:Socket Receive equivalent on NetworkStream/TcpClientNetworkStream/TcpClient 上的套接字接收等效项
【发布时间】:2013-10-11 13:12:28
【问题描述】:

使用套接字我可以这样做来获取字节

 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 byte[] buffer = new byte[1000000];
 s.Receive(buffer, buffer.Length, SocketFlags.None);
 //
 FileStream fs = File.Create("1.jpg");
 fs.Write(buffer, 0, buffer.Length);
 fs.Close();

我使用此代码接收我正在发送的图像的字节 []。

我需要将此代码转换为使用 TcpClient / NetworkStream 来接收发送的字节 [] 在此输入代码

【问题讨论】:

    标签: c# sockets tcplistener


    【解决方案1】:

    此代码应与您的代码等效:

    var buffer = new byte[100000];
    using (TcpClient tcp = new TcpClient(AddressFamily.InterNetwork)
    {
        Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
    })
    {
        await tcp.ConnectAsync("host", 12345);
        if (tcp.Connected)
        {
            using (var stream = tcp.GetStream())
            {
                await stream.ReadAsync(buffer, 0, buffer.Length);
            }
    
        }
    }
    using (var fs = File.Create("1.jpg"))
    {
        await fs.WriteAsync(buffer, 0, buffer.Length);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 2020-06-07
      相关资源
      最近更新 更多