C# 从android客户端向c服务器发送hello消息

C# 从android客户端向c服务器发送hello消息,c#,java,android,C#,Java,Android,我正在尝试创建这个简单的客户机服务器。我有一个android客户端和cserver。只是一个简单的程序,向服务器发送hello消息,但消息没有发送 我的java代码: Thread t= new Thread() { @Override public void run() { // TODO Auto-generated method stub try { Socket myClie

我正在尝试创建这个简单的客户机服务器。我有一个android客户端和cserver。只是一个简单的程序,向服务器发送hello消息,但消息没有发送

我的java代码:

Thread t= new Thread()
{

        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                Socket myClient= new Socket("192.167.01.123",7000);
                DataOutputStream dos= new DataOutputStream(myClient.getOutputStream());
                dos.writeBytes("Hello");
                dos.flush();
                dos.close();
                myClient.close();
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                System.out.println("unknown host");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                System.out.println("IOExxception");
            }
        }


    };
    t.start();
    Toast.makeText(this," Message sent" , Toast.LENGTH_SHORT).show();
}
和c代码:

    static void Main(string[] args)
    {
        TcpListener serverSocket = new TcpListener(7000);

        TcpClient clientSocket = new TcpClient();
        serverSocket.Start();
        Console.WriteLine("Server started.");
        clientSocket = serverSocket.AcceptTcpClient();
        Console.WriteLine("Accept conns from client.");

        while (true)
        {
            try
            {

                NetworkStream networkStream = clientSocket.GetStream();
                Byte[] bytes = new Byte[10025];
                networkStream.Read(bytes, 0, (int)clientSocket.ReceiveBufferSize);
                string dataClient = System.Text.Encoding.ASCII.GetString(bytes);
                Console.WriteLine("data from client: " + dataClient);


                networkStream.Flush();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
        clientSocket.Close();
        serverSocket.Stop();
        Console.WriteLine("EXIT");
        Console.ReadKey();
    }
}

    }

应该在while循环中

clientSocket = serverSocket.AcceptTcpClient();
试试这个:

要接收消息的c服务器类:

class Server
{
    int BUFSIZE = 100;
    int servPort = 1551;
    public static String ClientOrder = "";
    public static int bytesRcvd;
    public void RunServer()
    {
        TcpListener listener = null;
        TcpClient client = null;
        NetworkStream netStream = null;
        listener = new TcpListener(IPAddress.Any, servPort);
        listener.Start();
        byte[] rcvBuffer = new byte[BUFSIZE];
        while (true)
        {
            client = listener.AcceptTcpClient(); // Get clien
            netStream = client.GetStream();
            {
                rcvBuffer = new byte[BUFSIZE];
                bytesRcvd = netStream.Read(rcvBuffer, 0, rcvBuffer.Length);
                ClientOrder = (Encoding.ASCII.GetString(rcvBuffer)).Substring(0, bytesRcvd);
                netStream.Close();
                client.Close();
            }
        }
    }
}
要发送消息的Android客户端类:

public class Send_Message_To_Server implements Runnable {
private String mMsg,Server;
private Socket client;
private PrintWriter printwriter;
public Send_Order_To_Server(String msg,String IP) {
    mMsg = msg;
    Server=IP;
}
public void run() {
    try {
        client = new Socket(Server, 1551);  //connect to server
        printwriter = new PrintWriter(client.getOutputStream(),true);
        printwriter.write(mMsg);  //write the message to output stream
        printwriter.flush();
        printwriter.close();
        client.close();   //closing the connection
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

你在安卓方面有例外吗?没有。。。也不例外。。什么都没有。。。只是消息未发送或未接收?请使用日志语句查看发生了什么。发送的消息没有发生?如果真的发生了,那就错了。你唯一能说的是线程已启动。消息已发送,我可以看到。但是hello消息仍然没有发送到服务器。另外,我试图通过远程设备而不是模拟器发送它。