猿问

尝试将文件客户端传输到同一台PC上的服务器时遇到异常

好的,所以我写了一些非常简单的客户端-服务器程序(在C#中使用.net)。


当我尝试将字符串从客户端传输到服务器时,它工作正常,但是当我尝试将文件从客户端传输到服务器时,我得到了例外:


System.IO.IOException:无法从传输连接中读取数据:现有连接被远程主机强行关闭。SocketException:现有连接被远程主机强行关闭


该文件是txt文件(1KB)。


如您所见,客户端和服务器都在同一台计算机上:


客户:


using System;

using System.Net.Sockets;

using System.IO;

namespace client2

{

    class Program

    {

    static void Main(string[] args)

    {

        try

        {

            // Create a TcpClient.

            Int32 port = 13000;

            TcpClient client = new TcpClient("127.0.0.1", port);



            FileStream file = new FileStream("./amir.txt", FileMode.Open, FileAccess.Read);

            byte[] data = System.IO.File.ReadAllBytes("./amir.txt");


            //this one with a string works

                    //Byte[] data = System.Text.Encoding.ASCII.GetBytes("bla bla");

            // Get a client stream for reading and writing.


            Stream stream = client.GetStream();

            stream.Write(data, 0, data.Length);


        }

        catch (IOException e)

        {

        }

        catch (ArgumentNullException e)

        {

            Console.WriteLine("ArgumentNullException: {0}", e);

        }

        catch (SocketException e)

        {

            Console.WriteLine("SocketException: {0}", e);

        }

    }

}

}



慕斯709654
浏览 138回答 1
1回答

侃侃尔雅

我对您来说是个好消息,您的程序似乎运行得很好。我复制并执行,得到了“ success.txt”。这意味着您身边唯一的问题必须是经过IDE授权可以写入文件的问题或锁定文件的问题。我建议您重新启动计算机-使用管理员权限(在Visual Studio中为“以管理员身份运行”)打开IDE,然后查看是否仍有问题。从代码的角度来看-所有工作。
随时随地看视频慕课网APP
我要回答