套接字 - 简单的C#服务器和JAVA Android客户端

时间:2016-08-04 19:52:45

标签: java c# android sockets

我现在正在尝试,我无法弄清楚为什么这不起作用。

客户端:

public class MainActivity extends AppCompatActivity {

private Socket socket;
public static final int PORT = 6000;
public static final String server_IP = "192.168.2.30";
public String mensagem = null;
public String mensagem_final = null;

Button btn_conetar;
TextView txt;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn_conetar = (Button) findViewById(R.id.btn_conetar);
    txt = (TextView) findViewById(R.id.txt);

    Thread t = new Thread() {
        public void run() {
            try {
                while(!isInterrupted())
                {
                    Thread.sleep(1000);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            txt.setText(mensagem_final);
                        }
                    });
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    };
    t.start();


}
public void onClick(View view)
{
    new Thread((new ClientThread())).start();
    //Intent i = new Intent(MainActivity.this,Main2Activity.class);
   // startActivity(i);
}

//Thread que inicia o socket
class ClientThread implements Runnable
{
    @Override
    public void run() {
        try
        {
            InetAddress serveradress = InetAddress.getByName(server_IP);
            Log.e("TCP","A conetar...");
            socket = new Socket(serveradress,PORT);

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            while((mensagem = in.readLine()) != null)
            {
                mensagem_final += mensagem;
            }


            if(in.readLine() == null)
            {
                Log.e("TCP","Nao tem mensagens");
            }
            Log.e("MSG",mensagem);

            socket.close();
        }
        catch (UnknownHostException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }

    }
}

}

服务器:

    Servidor servidor = new Servidor();
    servidor.serverthread();



class Servidor
{

   public void serverthread()
    {
        Thread serverthread = new Thread(server);
        serverthread.Start();
    }


    public void server()
    {

            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            TcpListener tcplistener = new TcpListener(IPAddress.Any, 6000);
            tcplistener.Start();


            TcpClient tcpclient = tcplistener.AcceptTcpClient();

            byte[] data = new byte[1024];
            NetworkStream ns = tcpclient.GetStream();

            string welcome = "Ola";
            data = Encoding.ASCII.GetBytes(welcome);
            ns.Write(data, 0, data.Length);

    }
}

知道为什么我不能在我的Android应用程序中收到字符串“Ola”吗?它没有给我任何错误,它只是没有做任何事情。 我的互联网默认地址是192.168.2.1。

也欢迎良好的联系。

0 个答案:

没有答案