作者: qiaoke_song
查看: 259103|回复: 457
打印 上一主题 下一主题

[源码] 【文件传输示例】C# WinForm WebSocket (非浏览器)

  [复制链接]
跳转到指定楼层
楼主
qiaoke_song 发表于 2018-5-14 20:51:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查看: 259103|回复: 457
说明:
这是做的比较认真的一个练习,因为基本上每段都加上了中文注释。
一、设置
服务端:在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://bbs.cskin.net/thread-4394-1-1.html下载demo及说明
VLC的媒体文件DLL库,在Client文件夹内plugins目录

五、没做部分
1、服务端管理界面没做,只是打开运行就可以,可自行写用户管理等;
2、客户端:上传文件限制大小、上传下载数量限制没加上去,规则已经加到数据结构里面了,只是没有判断;
3、发送文件给用户个人部分没做,原理相同懒得写了。
4、会话没做,因为前面做过了,http://bbs.cskin.net/thread-4394-1-1.html
其他的都有。

另:注意LinQ语句筛选使用Find或FindALL,使用Where在线程中会出问题。登录时,使用“微软拼音”会出故障,换个输入法
数据库用Access在多用户使用会有问题,可以换其他库,
只是学习过程中的一个练习。
效果图:




源码下载-回复可见:
游客,如果您要查看本帖隐藏内容请回复


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 转播转播
回复 论坛版权

使用道具 举报

458#
angusxie2022 发表于 2024-9-5 12:29:05 | 只看该作者
看起来挺不错啊
457#
dragonet 发表于 2024-6-20 22:41:11 | 只看该作者
学习学习
回复

使用道具 举报

456#
hsanming 发表于 2024-1-19 00:03:26 | 只看该作者
厉害,好东西
455#
十有八九 发表于 2023-12-19 12:42:34 | 只看该作者
学习学习
回复

使用道具 举报

454#
十有八九 发表于 2023-12-19 12:42:12 | 只看该作者
学习学习
回复

使用道具 举报

453#
信仰 发表于 2023-12-8 08:03:26 | 只看该作者
winform 还是开发的利器啊 不错不错
452#
mszhang 发表于 2023-12-7 09:57:48 | 只看该作者
真的太及时了,感谢提供
451#
dachu 发表于 2023-11-27 21:53:02 | 只看该作者
漂亮漂亮,学习学习,感谢分享
450#
wy79807545 发表于 2023-2-18 03:33:34 | 只看该作者
看看看看看看看看看看
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-22 10:16, Processed in 0.596262 second(s), 34 queries , Gzip On.

快速回复 返回顶部 返回列表