void RecMsg(object socketClientPara)
{
Socket socketClient = socketClientPara as Socket;
while (true)
{
//定义一个接收用的 缓存区(2M字节数组)
byte[] arrMsgRec = new byte[1024 * 1024 * 2];
//将接收到的数据存入arrMsgRec数组,并返回真正接收到的数据的长度
int length = socketClient.Receive(arrMsgRec);
//第0个元素如果是0的话代表是文字
if (arrMsgRec[0] == 0)
{
//此时是将数组所有的元素都转换成字符串,而真正接收到的只有服务端发来的几个字符
string strMsgRec = Encoding.UTF8.GetString(arrMsgRec, 0, length);
ShowMessage(strMsgRec);
}
//如果是1,则代表发送过来的是文件数据(图片、视频、文件....)
else if(arrMsgRec[0]==1)
{
SaveFileDialog sfd = new SaveFileDialog();//保存文件选择框对象
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string fileSavePath = sfd.FileName;//获得要保存的文件路径
//创建文件流,然后让文件流来根据路径创建一个文件。
using (FileStream fs = new FileStream(fileSavePath, FileMode.Create))
{
fs.Write(arrMsgRec, 1, length-1);
ShowMessage("文件保存成功:"+fileSavePath);
}
}
}
}
} |
-
1.jpg
(158.21 KB, 下载次数: 0)
检查代码没有问题呀为什么发送文件后保存对话框不出来呢
|