广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > IT计算机培训信息 > 正文

轻松架起远程C-S体系_web服务器教学

作者:小甘发布时间:2020-12-11分类:IT计算机培训信息浏览:765


导读:本文将介绍如何轻松架起远程客户/服务器体系结构,让您领略C#编成的带来的无限精简便利。首先,实现服务器端。代码分析如下:  //引入相应命名空间  usingSystem; ...
本文将介绍如何轻松架起远程客户/服务器体系结构,让您领略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


IT计算机培训信息排行
标签列表
网站分类
文章归档
最近发表