轻松架起远程C-S体系

原创 2002年11月25日 19:18:00

 本文将介绍如何轻松架起远程客户/服务器体系结构,让您领略C#编成的带来的无限精简便利。
 首先,实现服务器端。代码分析如下:
//引入相应命名空间
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

namespace ServerClass {
 //实现一个服务器和客户端将要共同进行通讯的类MyRemoteClass
 public class MyRemoteClass: MarshalByRefObject
 {
  public MyRemoteClass() {
  }
  //这个方法是服务器和客户端进行通讯的,当然也可以定义其他更多的方法
  //客户端传送一个字符串过来
  public bool SetString(String sTemp) {
   try {
    //服务器端打印客户端传过来的字符串。返回逻辑值
    Console.WriteLine("This string '{0}' has a length of {1}", sTemp, sTemp.Length);
    return sTemp != "";
   } catch {
    return false;
   }
  }
 }

 //服务器控制类,这个类只是为了控制启动和关闭服务器的作用,你也可以把它的Main放到MyRemoteClass类中去。
 public class MyServer {
  public static void Main() {
   //打开并注册一个服务
   TcpChannel chan = new TcpChannel(8085);
   ChannelServices.RegisterChannel(chan);
   RemotingConfiguration.RegisterWellKnownServiceType(
     System.Type.GetType("ServerClass.MyRemoteClass"),
     "RemoteTest", WellKnownObjectMode.SingleCall);
   //保持运行
   System.Console.WriteLine("Hit <enter> to exit...");
   System.Console.ReadLine();
  }
 }
}

 然后,实现客户端。代码分析如下:
//引入相应命名空间
using System;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
//引入服务器和客户端进行通讯的类MyRemoteClass
using ServerClass;

namespace ClientClass {
 public class MyClient {
  public static void Main() {
   try {
    //打开并注册一个TCP通道
    TcpChannel chan = new TcpChannel();
    ChannelServices.RegisterChannel(chan);
    连接服务器,获取通讯类
    MyRemoteClass obj = (MyRemoteClass) Activator.GetObject(typeof(MyRemoteClass),
       "tcp://localhost:8085/RemoteTest");
    if (obj == null)
     System.Console.WriteLine("Could not locate server");
    else
     if (obj.SetString("Sending String to Server"))
      System.Console.WriteLine("Success: Check the other console to verify.");
     else
      System.Console.WriteLine("Sending the test string has failed.");
    System.Console.WriteLine("Hit <enter> to exit...");
    System.Console.ReadLine();
   } catch (Exception exp) {
    Console.WriteLine(exp.StackTrace);
   }
  }
 }
}
编译服务器代码
csc csc /out:MyServer.exe MyServer.cs
编译客户端代码
csc /r:MyServer.exe MyClient.cs
启动服务器c:/>start MyServer
启动客户端c:/>MyClient

.Net把很多功能包装太好了,给程序员带来了很多便利,本文只是涉及了其中一个方面具体的应用。文中错误处请邮件联系zlyperson@163.net

远程桌面连接软件轻松实现远程移动办公

BYOD(Bring Your Own Device)办公方式近年来广泛兴起,技术革新渐渐从数据中心转向了员工,许多企业开始更加注重员工的办公喜好以及效率提升。让员工能够携带自己喜欢的设备,通过远程控...
  • u012918365
  • u012918365
  • 2013年11月22日 11:06
  • 723

网页上如何做轻松筹的一个漂亮的标题

最近看到轻松筹上面的一个功能不错,所以自己就借鉴下,把标题的效果给实现了,现在就跟大家分享下,纯粹就是一个小功能希望大家喜欢. 效果图: 就是左边的那个标题块那里,个人感觉很好看,所以就写下来了...
  • qq_30552993
  • qq_30552993
  • 2015年12月17日 16:11
  • 13644

浅谈服务器的C/S模型

过去的一年,做了几个基于C/S模型的客户端和服务器,C/S模型就是“客户端/服务器”模型的简写。基于分享就是最好的学习,所以对其进行回顾是很有必要的。        其实,TCP/IP协议在设计和实...
  • kongwutianwen
  • kongwutianwen
  • 2015年01月29日 10:45
  • 1073

VNC轻松连接远程Linux桌面

VNC连接Linux桌面,要想连接Linux远程桌面,按照下面的步骤,非常简单、快速,Linux配置VNC(以RedHat、CentOS、Fedora系列为例)。 工具/原料 Linu...
  • Lina_ACM
  • Lina_ACM
  • 2016年05月02日 19:04
  • 1154

远程智能家居ZigBee控制系统

0 引言 智能家居系统(SmartHome)最早源于欧美发达国家,是指以住宅为平台,利用现代计算机网络通讯、自动化控制技术、传感器技术、无线通讯技术、音视频技术,通过社区综合...
  • liqingkk
  • liqingkk
  • 2015年03月29日 22:22
  • 1765

读《轻松scrum之旅》有感

经历了一个多月的阅读(基本是在上班早晨和中午休息的时候读的)终于将这本将近三百多页的敏捷开发的专著读完,下面谈谈我对这本书的观后感和书的主要内容: 1.书中以IBM公司(在书中称为E公司)的一个电子商...
  • IT_HY
  • IT_HY
  • 2015年06月16日 07:47
  • 1077

Linux设置VNC远程桌面连接来安装Oracle11G

前言:在linux下面进行oracle安装,需要启动java的swing界面,所以需要x-window窗口,那么就需要直接去服务器机房去现场操作挺麻烦,远程xshell无法视窗,这种情况下可以采用vn...
  • mchdba
  • mchdba
  • 2015年01月23日 18:01
  • 3618

这些轻松赚钱的方法,学会就能月入上万

在互联网行业混迹了四年,看过太多项目的盈利模式,其中大多数门槛并不高,只是大家没深入了解就以为那很难操作而已。 今天,就给你们分享一些干货,带你们看看这些轻松赚钱的方法,是怎样让那些人月入上万的...
  • Vicent_L
  • Vicent_L
  • 2017年05月12日 09:50
  • 1612

C++ STL编程轻松入门(1)

http://tech.163.com/05/0613/10/1M4EA0US00091589.html 作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里...
  • taotaoah
  • taotaoah
  • 2016年04月15日 10:30
  • 188

用Redis轻松实现秒杀系统

秒杀系统的架构设计 秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路: 写入内存而不是写入硬盘、异步处理而不是同步处理、分布式处理。 用上这三招,不论秒杀时负载多大,都能轻松...
  • universe_ant
  • universe_ant
  • 2016年10月12日 16:08
  • 708
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:轻松架起远程C-S体系
举报原因:
原因补充:

(最多只允许输入30个字)