C_Sharp 板


LINE

※ 引述《Abbee (阿比)》之铭言: : 真不好意思,没受过socket的正规训练, : 最近在写socket时, : 遇到了一些问题, : 我写的是甲server, : 以下为作业流程 : client 送出查询→甲server再以socket方式送出查询→乙server : 乙server查到资料後,以socket连入传送→甲server : 所以甲server这支程式本身是: : 1. 众多client的.net remoting server(多台) : 2. 乙server(是多台,但数量不同)的socket client : 3. 乙server的socket server : 所以我需要等待乙server回覆结果, : 再将结果回给client端... : 但是乙server回覆是随机送回这数台甲server之一, 这个做法不能改吗? 因为随机收到的甲 Server 再送回正确的 甲 Server 是一个多余的流程 不能改的话~也许可以想想怎麽让甲 Server 间的资料共享 让每一台甲 Server 都可以处理 : 所以我在甲server上再加上: : 4. 甲server同时也是另外几台甲server的server和client : 这样的话, 若是乙server丢到别台机器的话, : 我以资料上的编号判断後, 再丢回原机器处理... : 小妹有以下问题想请教各位: : 1. 我的甲server和乙server沟通是采用字串, 以字串前4码为讯息长度, : (这是规定格式) : 所以我接收socket的方式, 是先读入前4码, 判读後, 再将判读後数字-4, : 将剩下的讯息再读入, 之後再回到读入前4码动作重覆继续... : 请问这样是否会有什麽问题? 该不会是用 Json 吧? 这可能会有 Json 转换效率的问题 如果一定要用字串传的话~可能封包会很大~转换成正确资料也有转换上的效率问题 : 2. client端想作成同步的效果, 那我是否要在.net remoting的method内, : 在作完送出socket动作後, 要不断跑回圈等待结果呢? : 我是打算以讯息编号作dictionary, 记下从乙server回来的讯息, : 在回圈内去查该dictionary是否有该编号的资料, 有的话取出处理, : 并在取出同时删除该dictionary内的该笔资料~ : 请问有没有更好的建议呢? 总觉得跑回圈好像不太好... client 不能改吗?就是 client 送出封包到甲 Server 後 甲 Server 记住该 client 连接资讯~这样就不用跑回圈~让一条 thread 耗在那边 client 端只要弄个正在进行的字或图就好了 等甲 Server 处理完後~再送回正确的 client 让它进行下去就好了 -----------------这段应该可以略过???------------------------------------ 推文中您回应的"厂商把封包都写在db"~乙 Server 是厂商吧? 其实我很不解为什麽要这样做?不是应该直接把封包都送给甲 Server 就好了? 如果不能改~那就要想办法弄个 lock 让同一时间只有一台甲 Server 去处理 db 里的封包 ------------------------------------------------------------------------ 不好意思~刚刚反覆看了好几遍~总算应该是看懂了? XD 简单来讲~ client 根本没真的送出封包~而是透过写入 db 的方式去模拟? 真是开了我的眼界了... 其实要这样搞应该也不是不行~只是一定要在 db 模拟出一个 queue 就是让 client 写入要送的封包 弄个 stored procedure 让同一时间只有一台甲 Server 读到第一笔後 就删除该封包资料 处理完後在 db 的另一个 table 写入可让 client 查到结果的资料 但是除非 db 有主动通知 client 的功能 不然似乎免除不了 client 一直跑回圈去连 db 查结果 毕竟这不是真的可以互相连接的封包... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.173.236.75 ※ 编辑: andymai 来自: 1.173.236.75 (08/20 23:49) ※ 编辑: andymai 来自: 1.173.236.75 (08/21 00:16)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP