标题:请教C/S 开发中按钮执行相应方法 取名思路
只看楼主
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
以下是引用烟雨袅袅在2010-8-16 13:41:07的发言:

我在我理解中,一个C# CS平台开发,C与S之间是用端口来连接,所以一个软件中有许多按钮,C端发送信息到S端 必须在开头加入标识(这个标识用于表示是哪个按钮发出的),这样的话,这个标识取名必定有一定规律,每个标识对应相应的类和方法,
像上面所说的
office_lunchmanger_lunchlist_lunchpersonnel_lunchdetail_Button_确定
office_lunchmanger_lunchlist_lunchpersonnel_lunchdetail_Button_修改
客户端 按了 中餐->中餐列表->中餐个人详细信息中确定按钮后,发送标识 office_lunchmanger_lunchlist_lunchpersonnel_lunchdetail_Button_确定 ,
服务端接收标识然后执行 office_lunchmanger_lunchlist_lunchpersonnel_lunchdetail_Button_确定 方法
这样取名,以后不会重复,但是名字太长,
不知道哪位有经验的能说一下,实际开发中到底如何,客户端按了某个按钮,客户端会向服务发送什么样的消息和数据,以方便服务端接收执行对应的类和方法
 

 
感觉你这个是通讯了。

飘过~~
2010-08-16 13:59
烟雨袅袅
Rank: 6Rank: 6
来 自:星空雨际
等 级:侠之大者
威 望:1
帖 子:430
专家分:494
注 册:2007-11-26
得分:0 
以下是引用bygg在2010-8-16 13:55:21的发言:

为什么要将类名写成一样?难不成你的功能就只有这一个?
我的意思是分类多,按钮多,这样的话,
区分相应类可能两种方法,一种就是我office_lunchmanger_lunchlist_lunchpersonnel_lunchdetail 类中有方法 Button_确定  
一种可能就是按照你的文件夹方式,我以为不同文件夹中类可以重名,这样的话就能轻易区别出按钮是执行了 办公室->中餐->中餐列表->中餐个人->中餐详细    Button_确定 方法
                                                                                                 经理室->中餐->中餐列表->中餐个人->中餐详细    Button_确定 方法
2010-08-16 14:03
烟雨袅袅
Rank: 6Rank: 6
来 自:星空雨际
等 级:侠之大者
威 望:1
帖 子:430
专家分:494
注 册:2007-11-26
得分:0 
以下是引用bygg在2010-8-16 13:59:34的发言:

感觉你这个是通讯了。
大概是吧,要作成 客户端和服务端结构
服务端必须要正确识别客户端发来的相应按钮信息,执行相应类
按钮一多,不知道如何管理
2010-08-16 14:05
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 


飘过~~
2010-08-16 14:15
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
以下是引用烟雨袅袅在2010-8-16 14:05:43的发言:

大概是吧,要作成 客户端和服务端结构
服务端必须要正确识别客户端发来的相应按钮信息,执行相应类
按钮一多,不知道如何管理

那你不如用remoting什么的了,呵呵。其实无论如何,你调用时都可以通过方法名指定,而不是让服务器端去识别。
当然,我不知道你所说的“客户端与服务端是通过一个端口连接的”中的“端口”是什么。

飘过~~
2010-08-16 14:17
烟雨袅袅
Rank: 6Rank: 6
来 自:星空雨际
等 级:侠之大者
威 望:1
帖 子:430
专家分:494
注 册:2007-11-26
得分:0 
以下是引用bygg在2010-8-16 14:15:28的发言:
回14楼图片
你的意思是不同命名空间,可以有相同类吧
2010-08-16 14:18
烟雨袅袅
Rank: 6Rank: 6
来 自:星空雨际
等 级:侠之大者
威 望:1
帖 子:430
专家分:494
注 册:2007-11-26
得分:0 
以下是引用bygg在2010-8-16 14:17:25的发言:


那你不如用remoting什么的了,呵呵。其实无论如何,你调用时都可以通过方法名指定,而不是让服务器端去识别。
当然,我不知道你所说的“客户端与服务端是通过一个端口连接的”中的“端口”是什么。
                StateObject state = new StateObject();
                state.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint localIPEP = new IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(Port));
                state.socket.Bind(localIPEP); //绑定
                state.socket.Listen(50);//服务端监听

                StateObject state = new StateObject();
                state.client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint server = new IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(Port));//客户端
端口指的是 socket 创建出来的 ,不知道你在C# winfrom C/S开发平台时,C与S是如何发送接收信息,执行相应方法的
2010-08-16 14:22
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
以下是引用烟雨袅袅在2010-8-16 14:18:10的发言:

回14楼图片
你的意思是不同命名空间,可以有相同类吧
不同的文件夹,系统会默认在你的工程下面再加上一层,合并成一个新的命名空间。
引用时,只需注意是哪个命名空间下的就行了。

飘过~~
2010-08-16 14:23
烟雨袅袅
Rank: 6Rank: 6
来 自:星空雨际
等 级:侠之大者
威 望:1
帖 子:430
专家分:494
注 册:2007-11-26
得分:0 
以下是引用bygg在2010-8-16 14:17:25的发言:


那你不如用remoting什么的了,呵呵。其实无论如何,你调用时都可以通过方法名指定,而不是让服务器端去识别。
安照我想法,客户端是不能直接读取数据库,而是经过服务端的,这样服务端必然要去识别客户发过来信息,然后执行相应类和方法

[ 本帖最后由 烟雨袅袅 于 2010-8-16 14:28 编辑 ]
2010-08-16 14:26
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
以下是引用烟雨袅袅在2010-8-16 14:22:14的发言:

                StateObject state = new StateObject();
                state.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint localIPEP = new IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(Port));
                state.socket.Bind(localIPEP); //绑定
                state.socket.Listen(50);//服务端监听

                StateObject state = new StateObject();
                state.client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint server = new IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(Port));//客户端
端口指的是 socket 创建出来的 ,不知道你在C# winfrom C/S开发平台时,C与S是如何发送接收信息,执行相应方法的

原本是这样的。
socket不是你所理解的c/s,而是利用于TCP/IP网络通信开发的一个API,呵呵。
利用这个,倒是可以用不同的标识去让服务器执行不同的东西。
如果是传标识,你倒可以将所有的功能用一个enum统一管理起来。

[ 本帖最后由 bygg 于 2010-8-16 14:35 编辑 ]

飘过~~
2010-08-16 14:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-315743-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.381247 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved