将Java TCP套接字聊天程序转换为.net C#TCP聊天程序

时间:2011-04-06 13:20:15

标签: c# java tcp

我有一个Java TCP套接字聊天我想转换为.net C#程序。代码如下......请帮助。

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


class Connection
{
    public Socket s;
    public PrintWriter o;
    public BufferedReader i; 
}

class TCPChatServerThreadTask extends Thread
{
    Connection c;


public TCPChatServerThreadTask (ServerSocket serverSocket) throws IOException
{   
    c = new Connection ();

    c.s = serverSocket.accept ();
    c.o = new PrintWriter (c.s.getOutputStream (), true);
    c.i = new BufferedReader (new InputStreamReader (c.s.getInputStream ()));

    System.out.println (c.s.getInetAddress () + ":" + c.s.getPort () + " Connected");

    this.start ();
}   

public void run ()
{
    String fromClient = ">";

    try
    {               
        do
        {           
            fromClient = c.i.readLine ();

            System.out.println (c.s.getInetAddress () + ":" + c.s.getPort () + "> " + fromClient);

            for (int i = 0; i <  TCPChatServerThread.taskCount - 1; i ++)
            {
                TCPChatServerThread.task[i].c.o.println (c.s.getInetAddress () + ":" + c.s.getPort () + "> " + fromClient); 
            }
        }
        while (fromClient != "quit");

        System.out.println (c.s.getInetAddress () + ":" + c.s.getPort () + " Disconnected");

        c.o.close ();
        c.i.close ();       
        c.s.close ();
    }
    catch (IOException e)
    {
    } 
}
}

public class TCPChatServerThread
{
    ServerSocket serverSocket = null;
    static public String str = "?";
    static public TCPChatServerThreadTask[] task = new TCPChatServerThreadTask[10];
    static public int taskCount = 0;
public TCPChatServerThread () throws IOException
{       
    try
    {
        serverSocket = new ServerSocket (4455);
    }
    catch (IOException e)
    {
        System.err.println ("Server: Could not listen on port: ");
        System.exit (1);
    }

    System.out.println ("Server: Listening on port: ");

    while (true)
    {
        task[taskCount ++] = new TCPChatServerThreadTask (serverSocket);
    }
}

public static void main (String[] args) throws IOException
{       
    TCPChatServerThread e = new TCPChatServerThread ();
}
}

1 个答案:

答案 0 :(得分:1)

一种可行的策略:

  1. 将代码粘贴到C#IDE中。
  2. 正确的语法错误
  3. 查找未知类/方法xyz
  4. 等错误
  5. 查看c#的API-Javadoc的等价物,并查找应该与Java-Class相同的c#类/方法,并相应地编辑代码。
  6. 测试它。