【发布时间】:2014-05-15 03:44:33
【问题描述】:
我有以下代码:
C# 客户端:
class Program
{
static void Main(string[] args)
{
var client = new TcpClient(AddressFamily.InterNetwork);
client.Connect("127.0.0.1", 9090);
byte[] buffer = Encoding.Default.GetBytes(Program.ReadFile(@"C:\pub\image.jpg"));
using (var stream = client.GetStream())
{
stream.Write(buffer, 0, buffer.Length);
}
Console.WriteLine("File sent.");
Console.ReadLine();
}
public static string ReadFile(string path)
{
string content = string.Empty;
using (var stream = new FileStream(path, FileMode.Open))
{
using (var reader = new StreamReader(stream))
{
content = reader.ReadToEnd();
}
}
return content;
}
}
node.js 服务器:
var net = require('net');
var fs = require('fs');
var server = net.createServer(function (socket)
{
var buffer = new Buffer(0, 'binary');
socket.on('data', function (data)
{
buffer = Buffer.concat([buffer, new Buffer(data, 'binary')]);
});
socket.on("end", function (data)
{
fs.writeFile("image.jpg", buffer);
buffer = new Buffer(0, 'binary');
});
});
server.listen(9090, '127.0.0.1');
这不起作用。文件总是损坏。我做错了什么?
【问题讨论】:
-
尝试发送文本文件,以便查看是否/如何损坏。
-
奇怪的是,它确实适用于文本文件。为什么文本文件正确到达但图像不正确?
标签: c# javascript node.js networking tcp