繁体   English   中英

从Android客户端向C#服务器发送问候消息

[英]send a hello message from android client to c# server

我正在尝试创建此简单的客户端服务器。 我有一个android客户端和c#server。 只是一个向服务器发送问候消息但未发送消息的简单程序。

我的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 Client类发送消息:

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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM