有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将其(见下面的代码)转换为C#?

如何将其翻译成C#

import java.io.*; 
import java.net.*; 

 class SimpleServer 
 { 
private static SimpleServer server; 
ServerSocket socket; 
Socket incoming; 
BufferedReader readerIn; 
PrintStream printOut; 

public static void main(String[] args) 
{ 
    int port = 8080; 

    try 
    { 
        port = Integer.parseInt(args[0]); 
    } 
    catch (ArrayIndexOutOfBoundsException e) 
    { 
        // Catch exception and keep going. 
    } 

    server = new SimpleServer(port); 
} 

private SimpleServer(int port) 
{ 
    System.out.println(">> Starting SimpleServer"); 
    try 
    { 
        socket = new ServerSocket(port); 
        incoming = socket.accept(); 
        readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream())); 
        printOut = new PrintStream(incoming.getOutputStream()); 
        printOut.println("Enter EXIT to exit.\r"); 
        out("Enter EXIT to exit.\r"); 
        boolean done = false; 
        while (!done) 
        { 
            String str = readerIn.readLine(); 
            if (str == null) 
            { 
                done = true; 
            } 
            else 
            { 
                out("Echo: " + str + "\r"); 
                if(str.trim().equals("EXIT")) 
                { 
                    done = true; 
                } 
            } 
            incoming.close(); 
        } 
    } 
    catch (Exception e) 
    { 
        System.out.println(e); 
    } 
} 

private void out(String str) 
{ 
    printOut.println(str); 
    System.out.println(str); 
} 
}

共 (1) 个答案

  1. # 1 楼答案

    像这样的方法应该有用:

    using System;
    using System.IO;
    using System.Net.Sockets;
    using System.Text;
    
    namespace Server
    {
        internal class SimpleServer
        {
            private static SimpleServer server;
            private readonly TcpListener socket;
    
            private SimpleServer(int port)
            {
                Console.WriteLine(">> Starting SimpleServer");
                socket = new TcpListener(port);
                socket.Start(); 
            }
    
            private void DoJob()
            {
                try
                {
                    bool done = false;
                    while (!done)
                    {
                        TcpClient client = socket.AcceptTcpClient();
                        NetworkStream stream = client.GetStream();
                        var reader = new StreamReader(stream, Encoding.UTF8);
                        String str = reader.ReadLine();
                        if (str == null)
                        {
                            done = true;
                        }
                        else
                        {
                            printOut(str, stream);
                            if (str.Trim() == "EXIT")
                            {
                                done = true;
                            }
                        }
                        client.Close();
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
    
    
            public static void main(String[] args)
            {
                int port = 8080;
    
                try
                {
                    port = Int32.Parse(args[0]);
                }
                catch (Exception e)
                {
                    // Catch exception and keep going. 
                }
    
                server = new SimpleServer(port);
                server.DoJob();
            }
    
            private void printOut(String str, Stream stream)
            {
                byte[] bytes = Encoding.UTF8.GetBytes("Echo: " + str + "\r\n");
                stream.Write(bytes, 0, bytes.Length);
                Console.WriteLine(str);
            }
        }
    }
    

    编辑:但要注意编码