在Unity中做了一个文件分享系统,大体分为客户端和服务器,客户端能向上传文件、获取文件清单、通过清单下载文件,服务器端负责响应这些请求。目前应该只能本地通信,即127.0.0.1,其他的没试过,客户端与服务器也缺少一些协议,比如FTP啥的(因为忙嘛,只花了一个下午写的,怎么简单怎么来),在这里分享下工程、参考并且说说遇到的两个坑。
首先是参考,网上类似的很多,代码大同小异,这是我主要参考的一个:
我是链接。
然后是遇到的两个坑:
(1)string与byte之间编码和解码时按参考里开始用的是“Encoding.Default.GetBytes"。这里就出现一个问题,第一次上传结束后再次连接在服务器端会显示客户端断开连接了,并且有时发送的消息报错为非法格式无法解析。经过Debug信息发现发送的消息串行了(第一次发送的末尾部分出现在了第二次里),找了很久在这里发现答案
大家看一下就明白了,我也不多说了,就是把Encoding换成Encoder,Decoding换成Decoder,简单写了两个函数
static string DecoderToString(byte[] bytes)
{
char[] chs