C#写的一个关于简单的聊天系统

fate_ling 2016-09-18 08:21:04
该聊天分为客户端和服务器端
出现的问题:客户端向服务器端发送文件时:txt文件、rar文件、docx文档文件传输过去都是正常的,但是excel表格文件传输过去后出现打不开的现象

求解???
服务器端代码:
客户端代码:
代码链接:上传了还没显示出来。。。。
...全文
274 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fate_ling 2016-09-20
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
Receive(Buffer) 函数结果返回的是实际收到的字节数。比如说客户端一次发8000个字节,服务器端一次 Receive 可能收到8000个字节,也可能是7600个,甚至也可能是25000个(因为有前个数据的粘包)。你在本地机器上测试是收到了8000个字节,并不代表着你用局域网里另外一台机器做客户端机器来测试时就不存在分包。而你的代码并没有处理分包、粘包。 另外,假设对方发送了8000个字节,你不能认为它等同于发送了2M字节(尽管8000字节后边的字节都是0)。如果你不关心实际对方发送了多少字节数,怎么控制逻辑呢? 最后,我不知道你的 Var.accSck 是什么。在逻辑上它很有可能产生冲突的。你贴出的代码无法说明。
受教了,刚入门不久。。。 代码链接:http://download.csdn.net/detail/fate_ling/9633076
  • 打赏
  • 举报
回复
Receive(Buffer) 函数结果返回的是实际收到的字节数。比如说客户端一次发8000个字节,服务器端一次 Receive 可能收到8000个字节,也可能是7600个,甚至也可能是25000个(因为有前个数据的粘包)。你在本地机器上测试是收到了8000个字节,并不代表着你用局域网里另外一台机器做客户端机器来测试时就不存在分包。而你的代码并没有处理分包、粘包。 另外,假设对方发送了8000个字节,你不能认为它等同于发送了2M字节(尽管8000字节后边的字节都是0)。如果你不关心实际对方发送了多少字节数,怎么控制逻辑呢? 最后,我不知道你的 Var.accSck 是什么。在逻辑上它很有可能产生冲突的。你贴出的代码无法说明。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧