Socket网络连接的一个坑,以及HashSet,Dic注意事项

今天下午在这里捯饬了好久,元气大伤,明明没有什么东西,自己却写了好久。

昨天完成了一个角色选择面板的编写,下面贴两张图,现在刚刚完成角色选择,以及创建面板的开发,具体内容还在补充



(喵的越看越像那些做广告的网页游戏,UI界面还没有怎么处理,目前主要是做功能)

问题一:Socket异步传输极限问题

在使用异步传输时,我调用的是ReceiveCallBack(IAsyncResult ar),可以看我以前的文章,有client的代码,我发现ar所能接受的最大length只能为1024,且在一次调用中,无法两次调用ar,什么意思呢,就是说,如果你传输的数据过大,那么你想在一个函数中,通过调用一个循环进行拼接是不可能的,数据大了以后就会把传输数据1M为单位进行分割,解决方法有两种:一种是调用一个静态函数,用于收集完整信息再进行处理,这个我还没有太清楚,如果大量的数据同时发到客户端,那么数据是不是就会无效化呢,(可以在过大的数据上加上一个符号用于区分,当时这个符号就进行累加),我选择的方法是改变传输模块,我开始使用的是传输一个list的Json,这个list中包含所有的角色,每个角色包含所有的信息(每个角色有大概18个信息),后来我新写了一个类,只有三个信息,一个是角色模型,一个是名字,一个是等级(大家看上边的图也就能知道)

问题二:HashSet以及字典的问题

大家都知道这两个类型都是不允许重复的,而我默认它不会重复,后来才发现,他只对那些非引用类型的变量才管用,所有Object引用类型的变量都是不可行的,让我debug了那么久,也是醉了,下面是测试的代码。


这个项目最坑的是,我需要一块写服务器和客户端,就很尴尬,一旦传输协议变了,就需要同时更改。还有数据库也得不停地跟着调整

靴靴大家观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值