客户端调用服务端的类,这些类不在客户端,实例在服务端创建。用romoting
我也不是很精通,看看msdn,关于romoting,webservice
我也不是很精通,看看msdn,关于romoting,webservice
解决方案 »
- 线程休眠导致界面假死?
- 做过IPad开发的请进,如何通过Ipad自动搜索并连接C#做好的服务
- 请问一个关于相应事件的问题
- (狂散100)给回贴人的一点意见~~各位``~`
- 请教,如何把DataView中过滤得到结果拷贝到另一个表中?
- 200分求 如何在WinFrom中实现 DataGrid 控件列宽的自动适应调整(平时是等长的)
- 怎么把<dd date="2006-8-30 0:00:00"/>中的当前时间变成iso8601格式
- 网页路径问题,为什么图片都无法正常显示呢?高手请进!
- c#中怎么判断数据类型?
- C#问题
- 请问如何对指定ip,端口发来的数据包进行监控,转发?(参与都有分,不够另开贴再加)
- webForm之间数据访问
客户的connect.这是服务器和客户端就建立有效的连接,可以进行Receive和Send数据了
namespace Server_CS
{
using System;
public interface IServer
{
void md(string dir);//创建目录
}
}//服务器端程序
...
//必须的引用
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;//或者用Tcp
namespace Server_CS
{
public class Server : MarshalByRefObject,IServer
{
public void md(string dir)
{
if(Directory.Exists(dir)==false)//判断目录是否存在如果不存在立即生成
{
Directory.CreateDirectory(dir);
}
}
}
public class ServerTest
{
public static void Main()
{
//创建并注册信道
HttpChannel chan = new HttpChannel(65100);
ChannelServives.RegisterChannel(chan); Type serverType = Type.GetType("Server_CS.Server");
//注册类型并让服务器与端点连接
RemotingCofiguration.RegisterWellKnownServiceType
(serverType,"thePoint",WellKnownObjectMode.Singleton);
Console.WriteLine("服务启动成功!");
Console.ReadLine();
}
}
}
namespace Server_CS
{
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channel;
using System.Runtime.Remoting.Channel.Http;//要与服务器端的类型一致
public class Client
{
public static void Main()
{
//创建并注册Http信道 用0表示随机产生
HttpChannel chan = new HttpChannel(0);
ChannelServices.RegisterChannel(chan);
//从Http信道获取对象
MarshalByRefObject obj =
(MarshalByRefObject) RemotingServices.Connect(typeof(Server_CS.IServer),"http://localhost:65100/thePoint");//这里的地址为你服务器的IP
try
{
Server_CS.IServer server = obj as Server_CS.IServer;
server.md(@"d:\test");
catch(System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
有三种方案:
1)COM+方案,微软原来的远程计算模式,太复杂,但提供事务处理;
2).Net WebService,标准,集成性好,但接口级别太高,且目前不成熟,无事务处理机制。
3).Net Remoting,微软的COM+替代解决方案,效率较.NetWebService高几倍,编程接口级别较WebService低,可二次编程能力高。但我还不知道支持不支持事务机制,估计是支持的。如果看重效率、可编程性,那么考虑.Net Remoting,否则,考虑.Net WebService。如果对事务处理要求很高,那么我也不知道了...我WebService举个例子吧:
[WebMethod]
string ErrMsg CreateFolder(string FolderName)
{
//检查用户Session,判断用户权限
if(未登录)return "未登录";
if(权限不够)return "权限不够";
//开始创建
if(创建(FolderName) != 成功) return "创建失败";
return "S_OK";//代表成功
}哈哈,就这么简单