云计算百科
云计算领域专业知识百科平台

C#中的模拟服务器与客户端建立连接

创建一个控制台项目,命名为Server,模拟服务器端。在同一个解决方案下,添加新项目,命名为Client,模拟客户端。在服务器端与客户端之间建立TCP连接,并在客户端发送消息,在服务器端输出。

Server项目具体要求:

1.在Server项目中,用本机端点建立TcpListener对象,进行监听。

2.在客户端发出连接请求后,接收请求,获取远程连接客户端对象。

3.接收客户端发送过来的正方形边长,并显示。

4.计算正方形的面积,回复运算结果并显示。

5.最后关闭该通信。

Client项目具体要求:

1.建立TcpClient对象。

2.与服务器端建立连接。

3.连接成功后,向服务端发送正方形的边长,并显示。

4.接收服务器端发送的运算结果并显示。

5.最后关闭该通信。

实现效果如下:

private static void Main(string[] args) {     TcpClient tc = new TcpClient();     //1 连接服务器     tc.Connect("127.0.0.1", 5001);     if (tc.Connected)                                //判断服务器是否连接成功         Console.WriteLine("服务器连接成功");

    Console.Write("请输入第一个数字:");     // string msg = Console.ReadLine();              //4通过网络把输入的文本传给服务器     NetworkStream ns = tc.GetStream();     StreamWriter sw = new StreamWriter(ns);//发送给服务器第一个数据     sw.WriteLine(Console.ReadLine());     sw.Flush();

    Console.WriteLine("请输入运算符'+''-''*'");     StreamWriter sw2 = new StreamWriter(ns);//发送给服务器第二个数据     sw2.WriteLine(Console.ReadLine());     sw2.Flush();

    Console.WriteLine("请输入第二个数");     StreamWriter sw3 = new StreamWriter(ns);//发送给服务器第三个数据     sw3.WriteLine(Console.ReadLine());     sw3.Flush();

    StreamReader sr = new StreamReader(ns);    //接受服务区发来的第一个数据   //6     Console.WriteLine("服务器说:" + sr.ReadLine());     sr.Close();     //sr2.Close();     //sr3.Close();     sw.Close();     sw2.Close();     sw3.Close();

    ns.Close();     tc.Close();     Console.ReadKey(); }

 

private static void Main(string[] args) {     IPAddress ip = IPAddress.Parse("127.0.0.1");//2 接受客户端连接     TcpListener t1 = new TcpListener(ip, 5001);     t1.Start();     Console.WriteLine("服务器启动,等待连接。。。");

    TcpClient tc = t1.AcceptTcpClient();                //3 显示客户端连接情况     if (tc != null)         Console.WriteLine("客户端连接成功,等待客户端输入");

    NetworkStream ns = tc.GetStream();    //这是个管道                //5

    StreamReader sr = new StreamReader(ns);//接受客户端发的第一个数据     string msg = sr.ReadLine();     Console.WriteLine("客户端说:" + msg);

    StreamReader sr2 = new StreamReader(ns);//接收客户端发的第二个数据     string msg2 = sr2.ReadLine();//22222     Console.WriteLine("客户端说:" + msg2);

    StreamReader sr3 = new StreamReader(ns);//接受客户端发的第三个数据     string msg3 = sr3.ReadLine();//22222     Console.WriteLine("客户端说:" + msg3);

    Console.Write("请回复");       //回复客户端的第一个数据                  //7     StreamWriter sw = new StreamWriter(ns);     if (msg2 == "+")     {         sw.WriteLine("计算结果为{0}", Convert.ToInt32(msg) + Convert.ToInt32(msg3));         sw.Flush();     }     else if (msg2 == "-")     {         sw.WriteLine("计算结果为{0}", Convert.ToInt32(msg) – Convert.ToInt32(msg3));         sw.Flush();     }     else if (msg2 == "*")     {         sw.WriteLine("计算结果为{0}", Convert.ToInt32(msg) * Convert.ToInt32(msg3));         sw.Flush();     }     else if (msg2 == "/")     {         try         {             sw.WriteLine("计算结果为{0}", Convert.ToInt32(msg) / Convert.ToInt32(msg3));             sw.Flush();         }         catch (Exception)         {

            sw.WriteLine("输入数据有错误,请检查后重新输入");             sw.Flush();

        }     }

    sw.Close();     sr.Close();     sr2.Close();     ns.Close();     tc.Close();     t1.Stop();

    Console.ReadKey(); }

 

 

赞(0)
未经允许不得转载:网硕互联帮助中心 » C#中的模拟服务器与客户端建立连接
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!