作者ronald51 (喜洋洋)
看板C_Sharp
标题[问题] 网路传图档问题
时间Sat Oct 11 18:36:06 2008
server端
private void button1_Click(object sender, EventArgs e)
{
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 12345);
Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
s.Bind(ipe);
s.Listen(100);
Socket c=s.Accept();
SaveFileDialog savepic = new SaveFileDialog();
savepic.Filter = "bmp ?(*.bmp)|*.bmp|" + "JPG ?(*.jpg)|*.jpg;*";
if (savepic.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(savepic.FileName,
FileMode.Create);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
NetworkStream ns = new NetworkStream(c, true);
byte[] byteArray = new byte[1024];
while (ns.DataAvailable)
{
ns.Read(byteArray, 0, byteArray.Length);
string str =
System.Text.Encoding.Default.GetString(byteArray);
sw.Write(str);
}
sw.Flush();
c.Close();
}
}
client端
private void button1_Click_1(object sender, EventArgs e)
{
IPEndPoint ipe = new IPEndPoint(new IPAddress(new byte[] { 140,
118, 122, 88 }), 12345);
Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
s.Connect(ipe);
OpenFileDialog OpenPhoto = new OpenFileDialog();
OpenPhoto.Filter = "bmp ?(*.bmp)|*.bmp|" + "JPG ?(*.jpg)|*.jpg;*";
if (OpenPhoto.ShowDialog() == DialogResult.OK) //给予使用者设定读
档位置
{
FileStream fs = new FileStream(OpenPhoto.FileName,
FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.Default);
String temp = sr.ReadToEnd();
NetworkStream ns= new NetworkStream(s,true);
byte[] byteArray =
System.Text.Encoding.Default.GetBytes(temp);
ns.Write(byteArray, 0, byteArray.Length);
ns.Flush();
}
}
不知为啥这个程式传的跟读取的图档大小都不一样
还有有些部分用记事本开发现他有些空白键会换传成?
不知是否有人知道这个程式码哪边有问题
谢谢各位大大
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.122.88
1F:推 shinywong:use BinaryReader, rather than StreamReader. 10/11 20:14
2F:→ ronald51:感谢您了回答 不知各自的适用状况是如何 10/12 00:48