好的,所以我写了一些非常简单的客户端-服务器程序(在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); } }}}
1 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
我对您来说是个好消息,您的程序似乎运行得很好。
我复制并执行,得到了“ success.txt”。
这意味着您身边唯一的问题必须是经过IDE授权可以写入文件的问题或锁定文件的问题。我建议您重新启动计算机-使用管理员权限(在Visual Studio中为“以管理员身份运行”)打开IDE,然后查看是否仍有问题。
从代码的角度来看-所有工作。
- 1 回答
- 0 关注
- 137 浏览
添加回答
举报
0/150
提交
取消