找回密码
 注册帐号

扫一扫,访问微社区

开果 一个简单 小型的C#Socket网络通信库 聊天室示例(六)

55
回复
2795
查看
[ 复制链接 ]

15

主题

25

帖子

220

积分

Rank: 9Rank: 9Rank: 9

UID
327626
好友
6
蛮牛币
87
威望
0
注册时间
2019-7-19
在线时间
164 小时
最后登录
2019-12-1
2019-8-27 10:29:42 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
这里就讲下GameRoot这个类了,业务逻辑,UI管理,收发消息 都在这里了=。=

先上代码吧:  emmm这里代码 某个代码不给上传只能发图了。。可以下载源码慢慢看


1.png 2.png 3.png 4.png




这里还要添加从服务端那边生成出来的两个dll   KGSocket 这个就是之前通信库的 和ChatNetData 这个是两端共用的 数据类库


一开始 会连接服务器  socketClient.StartCreate("127.0.0.1", 8895); 当然这里得定义好类KGSocketClient<ChatNetSession, ChatDatas> socketClient   ,接着 全部按钮事件和别的事件初始化绑定都在InItClickEvent这里了,
接收服务器消息的事件,处理消息数据
KGSocketClient里面我写了两个   一个是回调函数 OnReciveData(T data) 在自己类调的,还有一个是回调事件Action<T> OnReciveDataEvent 给外部用的,这边图省事直接用事件OnReciveDataEvent 了    socketClient.Client.OnReciveDataEvent += AddNetData;  所以接收消息处理在AddNetData 上 然后AddNetData 接收到会天添加到ChatQue 队列里面 在Updata里每帧判断是否有任务存在里面  如果有就就行出列 在ProcessNetData 进行数据处理   在ProcessNetData 里面会根据接收到的数据先判断有没有错误指令Err再进行判断任务指令CMD进行对应的处理  这里可以看下代码就行了

登录按钮事件
这里会先判断 头像和名字有没有输入如果没有直接返回错误信息 不会发消息给服务器,如果都输入了直接发消息给服务器socketClient.Client.SendData(这里就是自己定义的两端都通用数据类型),CMD必须要填准确。服务器是根据CMD来进行对应的操作的

选择头像图片按钮事件在OpenFile()这里
需要用到 System.Windows.Forms ——Windows 的应用程序的类的OpenFileDialog 这里要using System.Windows.Forms 了   注意的是 u3d里面默认没引用这个dll的需要去u3d文件夹搜索System.Windows.Forms.dll这个文件  如图
5.png ,然后把它拖进来u3d  
这里打包时候还要注意的是u3d默认环境不支持打包这个dll的所以还要设置  如图
6.png


然后就可以调用这个选择文件了 效果就是这样 7.png

这里说一下代码

OpenFileDialog.Filter 就是定义选择文件的类型  我这里就写了两个图片的,你们喜欢可以自行增加 "显示在窗口的名称|*.后缀名|JPG图片|*.jpg" 格式就这样
OpenFileDialog.InitialDirectory 就是定义初始打开文件的位置
if (dialog.ShowDialog() == DialogResult.OK) 判断是否打开完成了 然后dialog.FileName 获取该文件的路径 字符 然后就可以进行转化byte[]数据了 用的拓展工具类的GetPictureBytes


服务器打印事件
在KGSocketClient里面所有打印事件都在KGSocketClient.SetLog  自行添加就好   
[C#] 纯文本查看 复制代码
socketClient.SetLog((v, l) =>
        {
            Debug.Log(v + "Level:" + l);
        });



发送按钮事件
和登录按钮差不多做法的

提醒错误消息的
StartDelayTxt(string info) 都在这了




还有个ChatNetSession类
这里直接继承抽象类KGNetSession<ChatDatas>  就好 没有添加什么 ,服务端那边倒是放了些缓存在里面=  =懒得弄另外的缓存类了








好了整个过程了


工程地址
游客,如果您要查看本帖隐藏内容请回复









回复

使用道具 举报

排名
48143
昨日变化

0

主题

23

帖子

53

积分

Rank: 2Rank: 2

UID
143580
好友
1
蛮牛币
27
威望
0
注册时间
2016-3-27
在线时间
26 小时
最后登录
2020-8-7
2019-8-27 14:32:16 显示全部楼层
回复看看这个结构
回复 支持 反对

使用道具 举报

0

主题

1

帖子

2

积分

Rank: 1

UID
272751
好友
0
蛮牛币
16
威望
0
注册时间
2018-3-16
在线时间
1 小时
最后登录
2019-8-27
2019-8-27 14:35:51 显示全部楼层
学习学习下,挺好的例子
回复 支持 反对

使用道具 举报

0

主题

36

帖子

61

积分

Rank: 2Rank: 2

UID
320705
好友
0
蛮牛币
17
威望
0
注册时间
2019-4-26
在线时间
25 小时
最后登录
2019-11-19
2019-8-27 16:52:31 显示全部楼层
能下载资源吗
回复

使用道具 举报

5熟悉之中
790/1000
排名
5514
昨日变化

2

主题

180

帖子

790

积分

Rank: 5Rank: 5

UID
258871
好友
0
蛮牛币
1187
威望
0
注册时间
2017-12-10
在线时间
350 小时
最后登录
2020-8-11
2019-8-27 16:52:36 显示全部楼层
学习学习
回复

使用道具 举报

3偶尔光临
284/300
排名
34892
昨日变化

0

主题

69

帖子

284

积分

Rank: 3Rank: 3Rank: 3

UID
247710
好友
0
蛮牛币
656
威望
0
注册时间
2017-10-9
在线时间
207 小时
最后登录
2020-8-11
2019-8-27 18:59:25 显示全部楼层
回复看看这个结构
回复 支持 反对

使用道具 举报

5熟悉之中
742/1000
排名
5899
昨日变化

0

主题

74

帖子

742

积分

Rank: 5Rank: 5

UID
100591
好友
0
蛮牛币
860
威望
0
注册时间
2015-5-15
在线时间
432 小时
最后登录
2020-8-10
2019-8-27 19:18:10 显示全部楼层
学习一下
回复

使用道具 举报

5熟悉之中
886/1000
排名
4110
昨日变化

1

主题

320

帖子

886

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
1062
威望
0
注册时间
2017-9-21
在线时间
204 小时
最后登录
2020-6-3
2019-8-28 09:37:06 显示全部楼层
所以说直接用Winform做不就好了
回复 支持 反对

使用道具 举报

3偶尔光临
205/300
排名
15302
昨日变化

0

主题

19

帖子

205

积分

Rank: 3Rank: 3Rank: 3

UID
289208
好友
0
蛮牛币
160
威望
0
注册时间
2018-7-10
在线时间
136 小时
最后登录
2020-7-20
2019-8-28 09:42:26 显示全部楼层
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1321/1500
排名
3423
昨日变化

0

主题

427

帖子

1321

积分

Rank: 6Rank: 6Rank: 6

UID
228584
好友
0
蛮牛币
1491
威望
0
注册时间
2017-6-25
在线时间
458 小时
最后登录
2020-8-3
2019-8-28 16:33:39 显示全部楼层
看看看看
回复

使用道具 举报

3偶尔光临
234/300
排名
21330
昨日变化

0

主题

88

帖子

234

积分

Rank: 3Rank: 3Rank: 3

UID
247413
好友
0
蛮牛币
1
威望
0
注册时间
2017-10-7
在线时间
123 小时
最后登录
2020-6-30
2019-8-29 13:29:13 显示全部楼层
太厉害了,真的是优秀,很棒
回复 支持 反对

使用道具 举报

2初来乍到
118/150
排名
28935
昨日变化

0

主题

43

帖子

118

积分

Rank: 2Rank: 2

UID
205309
好友
0
蛮牛币
0
威望
0
注册时间
2017-2-6
在线时间
63 小时
最后登录
2019-12-6
2019-8-29 14:12:42 显示全部楼层
非常非常好 老厉害了  非常想下载呢
回复 支持 反对

使用道具 举报

5熟悉之中
722/1000
排名
6443
昨日变化

0

主题

74

帖子

722

积分

Rank: 5Rank: 5

UID
286880
好友
1
蛮牛币
643
威望
0
注册时间
2018-6-22
在线时间
439 小时
最后登录
2020-7-14
2019-8-29 14:38:38 显示全部楼层
看下分析分析
回复

使用道具 举报

5熟悉之中
722/1000
排名
6443
昨日变化

0

主题

74

帖子

722

积分

Rank: 5Rank: 5

UID
286880
好友
1
蛮牛币
643
威望
0
注册时间
2018-6-22
在线时间
439 小时
最后登录
2020-7-14
2019-8-29 14:39:49 显示全部楼层
看下分析分析看下分析分析
回复 支持 反对

使用道具 举报

3偶尔光临
151/300
排名
18293
昨日变化

1

主题

22

帖子

151

积分

Rank: 3Rank: 3Rank: 3

UID
218489
好友
2
蛮牛币
269
威望
0
注册时间
2017-4-19
在线时间
94 小时
最后登录
2020-5-18
2019-8-29 17:48:50 显示全部楼层
yaokankan
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则