拍下付好后1分钟自动QQ发货,也可以在网页自助提取:/?nmmMRb (复制)如需技术服务费用另议.

0495 C# WebSocket 文件传输源码

这是做的比较认真的一个练习,由于基本上每段都加上了中文注释。
一、设置
服务端:在Server文件夹内,SystemNet_define.cs
设置服务地址,这里设置为:
public static string ServerAddress = "ws://127.0.0.1:9999"; // 服务地址、端口
密钥、套接字分隔符都可自行设置。
用户端:Client文件夹内,SystemNet_define.cs
设置链接地址:
public static string ServerAddress = "ws://127.0.0.1:9999/FServer"; // 服务地址,接口
密钥、分隔符与服务端一致即可以。

套接字只要在服务端随便设置为不同的短语即可以,用户端登录后,会从自行从服务端获得并判断,
所以在判断代码中用不了switch,一律用 if else 了。

由于不会搭建rstp服务,所以在媒体预览上面就用IIS了,将IIS目录指向SERVER_FILES文件夹,
设置Server文件夹内,SystemNet_define.cs文件的套接字:
public string Transport_StreamMedia = "http://127.0.0.1:8081"; // 媒体文件预览地址
为IIS地址、端口即可以了,如IIS为80端口,直接"http://127.0.0.1"

二、传输文件
上传:用户端将文件分割为服务端限定的大小数据包,加上标识,发送到服务端,服务端接收后合并数据包为文件。
下载:与上传相同。
有新文件后,用户端会有新文件提示,点击顶部刷新可升级当前显示。

分割文件的每个包为一段Base64字符串,并进行压缩,复原文件先解压缩字符串在合并Base64字符串,转为文件,
使用Base64字符串是由于传输byte,图像、媒体文件后打开错误,比方传输byte,生成图像文件是需要指定格式,
才能正确生成,等等。所以Base64最然大了点,但经过压缩后传输还可以。
也可用其它传输方法,有更高的效率,这里只是做练习。可以参考压缩文件内WebSocket-Sharp文件传输例子。

三、运行
根据你的需要修改、编译完毕后,先运行在Server文件夹内File_transferServer.exe
再运行Client文件夹内File_transferClient.exe
客户名:1000~1028,密码:123456

四、包含文件
websocket-sharp-master组件源代码,可在github上下载最新版
SQK_UI组件修改代码,可在http://www.haolizi.net/example/view_14426.html下载demo及说明
VLC的媒体文件DLL库,在Client文件夹内plugins目录

五、没做部分
1、服务端管理界面没做,只是打开运行即可以,可自行写客户管理等;
2、用户端:上传文件限制大小、上传下载数量限制没加上去,规则已经加到数据结构里面了,只是没有判断;
3、发送文件给客户个人部分没做,原理相同懒得写了。
4、会话没做,由于前面做过了,http://www.haolizi.net/example/view_14961.html
其余的都有。
另:注意LinQ语句挑选使用Find或者FindALL,使用Where在线程中会出问题,百度查看。
登录时,使用“微软拼音”会出故障,换个输入法
数据库用Access在多客户使用会有问题,可以换其余库,

  • 卖家QQ 779444424
  • 卖家微信 xielaobanhao