开发者社区> 问答> 正文

请问怎么编写C#用vs studio 2015连接上云服务器呢?

请问怎么编写C#用vs studio 2015连接上云服务器呢?

展开
收起
游客6h5san7fv463g 2020-12-02 23:18:56 550 0
1 条回答
写回答
取消 提交回答
  • 你了解TCP/IP socket编程相关知识吗?

    网页链接

    首先你要在云服务器上运行一个服务器程序,然后在本机运行客户端程序,两者通过TCP协议通讯交换数据(即你所说的连上云服务器)。

    最简单的服务器程序:

    using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text;

    class MyTcpListener { public static void Main() { TcpListener server=null;
    try { // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1");

      // TcpListener server = new TcpListener(port);
      server = new TcpListener(localAddr, port);
    
      // Start listening for client requests.
      server.Start();
         
      // Buffer for reading data
      Byte[] bytes = new Byte[256];
      String data = null;
    
      // Enter the listening loop.
      while(true) 
      {
        Console.Write("Waiting for a connection... ");
        
        // Perform a blocking call to accept requests.
        // You could also user server.AcceptSocket() here.
        TcpClient client = server.AcceptTcpClient();            
        Console.WriteLine("Connected!");
    
        data = null;
    
        // Get a stream object for reading and writing
        NetworkStream stream = client.GetStream();
    
        int i;
    
        // Loop to receive all the data sent by the client.
        while((i = stream.Read(bytes, 0, bytes.Length))!=0) 
        {   
          // Translate data bytes to a ASCII string.
          data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
          Console.WriteLine("Received: {0}", data);
       
          // Process the data sent by the client.
          data = data.ToUpper();
    
          byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
    
          // Send back a response.
          stream.Write(msg, 0, msg.Length);
          Console.WriteLine("Sent: {0}", data);            
        }
         
        // Shutdown and end connection
        client.Close();
      }
    }
    catch(SocketException e)
    {
      Console.WriteLine("SocketException: {0}", e);
    }
    finally
    {
       // Stop listening for new clients.
       server.Stop();
    }
    
      
    Console.WriteLine("\nHit enter to continue...");
    Console.Read();
    

    }
    } 最简单的客户端:

    static void Connect(String server, String message) { try { // Create a TcpClient. // Note, for this client to work you need to have a TcpServer // connected to the same address as specified by the server, port // combination. Int32 port = 13000; TcpClient client = new TcpClient(server, port);

    // Translate the passed message into ASCII and store it as a Byte array.
    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);         
    // Get a client stream for reading and writing.
    //  Stream stream = client.GetStream();
    
    NetworkStream stream = client.GetStream();
    // Send the message to the connected TcpServer. 
    stream.Write(data, 0, data.Length);
    Console.WriteLine("Sent: {0}", message);         
    // Receive the TcpServer.response.
    
    // Buffer to store the response bytes.
    data = new Byte[256];
    // String to store the response ASCII representation.
    String responseData = String.Empty;
    // Read the first batch of the TcpServer response bytes.
    Int32 bytes = stream.Read(data, 0, data.Length);
    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
    Console.WriteLine("Received: {0}", responseData);         
    // Close everything.
    stream.Close();         
    client.Close();         
    

    } catch (ArgumentNullException e) { Console.WriteLine("ArgumentNullException: {0}", e); } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); }

    Console.WriteLine("\n Press Enter to continue..."); Console.Read(); }

    2021-02-22 13:29:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS快储存加密技术 立即下载