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

29
回复
472
查看
打印 上一主题 下一主题
[ 复制链接 ]

14

主题

23

帖子

172

积分

Rank: 9Rank: 9Rank: 9

UID
327626
好友
4
蛮牛币
129
威望
0
注册时间
2019-7-19
在线时间
126 小时
最后登录
2019-9-17

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

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

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

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







这里还要添加从服务端那边生成出来的两个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 了   注意的是 ޳里面默认没引用这个dll的需要去޳文件夹搜索System.Windows.Forms.dll这个文件  如图
,然后把它拖进来޳  
这里打包时候还要注意的是޳默认环境不支持打包这个dll的所以还要设置  如图



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

这里说一下代码

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>  就好 没有添加什么 ,服务端那边倒是放了些缓存在里面=  =懒得弄另外的缓存类了








好了整个过程了


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









排名
48139
昨日变化

0

主题

22

帖子

50

积分

Rank: 2Rank: 2

UID
143580
好友
1
蛮牛币
27
威望
0
注册时间
2016-3-27
在线时间
24 小时
最后登录
2019-8-27
沙发
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

主题

34

帖子

53

积分

Rank: 2Rank: 2

UID
320705
好友
0
蛮牛币
30
威望
0
注册时间
2019-4-26
在线时间
19 小时
最后登录
2019-9-16
地板
2019-8-27 16:52:31 只看该作者
能下载资源吗
5熟悉之中
660/1000
排名
5515
昨日变化

2

主题

163

帖子

660

积分

Rank: 5Rank: 5

UID
258871
好友
0
蛮牛币
217
威望
0
注册时间
2017-12-10
在线时间
237 小时
最后登录
2019-9-16
5#
2019-8-27 16:52:36 只看该作者
学习学习
3偶尔光临
151/300
排名
34888
昨日变化

0

主题

51

帖子

151

积分

Rank: 3Rank: 3Rank: 3

UID
247710
好友
0
蛮牛币
314
威望
0
注册时间
2017-10-9
在线时间
92 小时
最后登录
2019-9-16
6#
2019-8-27 18:59:25 只看该作者
回复看看这个结构
5熟悉之中
729/1000
排名
5900
昨日变化

0

主题

72

帖子

729

积分

Rank: 5Rank: 5

UID
100591
好友
0
蛮牛币
882
威望
0
注册时间
2015-5-15
在线时间
421 小时
最后登录
2019-9-9
7#
2019-8-27 19:18:10 只看该作者
学习一下
5熟悉之中
828/1000
排名
4111
昨日变化

1

主题

287

帖子

828

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
1018
威望
0
注册时间
2017-9-21
在线时间
180 小时
最后登录
2019-9-17
8#
2019-8-28 09:37:06 只看该作者
所以说直接用Winform做不就好了
3偶尔光临
155/300
排名
15300
昨日变化

0

主题

13

帖子

155

积分

Rank: 3Rank: 3Rank: 3

UID
289208
好友
0
蛮牛币
190
威望
0
注册时间
2018-7-10
在线时间
92 小时
最后登录
2019-9-10
9#
2019-8-28 09:42:26 只看该作者
6蛮牛粉丝
1146/1500
排名
3424
昨日变化

0

主题

374

帖子

1146

积分

Rank: 6Rank: 6Rank: 6

UID
228584
好友
0
蛮牛币
1371
威望
0
注册时间
2017-6-25
在线时间
333 小时
最后登录
2019-9-13
10#
2019-8-28 16:33:39 只看该作者
看看看看
3偶尔光临
214/300
排名
21330
昨日变化

0

主题

82

帖子

214

积分

Rank: 3Rank: 3Rank: 3

UID
247413
好友
0
蛮牛币
15
威望
0
注册时间
2017-10-7
在线时间
108 小时
最后登录
2019-9-10
11#
2019-8-29 13:29:13 只看该作者
太厉害了,真的是优秀,很棒
2初来乍到
116/150
排名
28932
昨日变化

0

主题

42

帖子

116

积分

Rank: 2Rank: 2

UID
205309
好友
0
蛮牛币
0
威望
0
注册时间
2017-2-6
在线时间
62 小时
最后登录
2019-8-29
12#
2019-8-29 14:12:42 只看该作者
非常非常好 老厉害了  非常想下载呢
5熟悉之中
525/1000
排名
6444
昨日变化

0

主题

61

帖子

525

积分

Rank: 5Rank: 5

UID
286880
好友
1
蛮牛币
622
威望
0
注册时间
2018-6-22
在线时间
254 小时
最后登录
2019-9-17
13#
2019-8-29 14:38:38 只看该作者
看下分析分析
5熟悉之中
525/1000
排名
6444
昨日变化

0

主题

61

帖子

525

积分

Rank: 5Rank: 5

UID
286880
好友
1
蛮牛币
622
威望
0
注册时间
2018-6-22
在线时间
254 小时
最后登录
2019-9-17
14#
2019-8-29 14:39:49 只看该作者
看下分析分析看下分析分析
2初来乍到
112/150
排名
18293
昨日变化

0

主题

21

帖子

112

积分

Rank: 2Rank: 2

UID
218489
好友
1
蛮牛币
12
威望
0
注册时间
2017-4-19
在线时间
57 小时
最后登录
2019-9-17
15#
2019-8-29 17:48:50 只看该作者
yaokankan
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则