在android中的一台服务器上安装两个客户端

时间:2016-07-21 10:39:20

标签: android sockets

我开发了一个聊天应用程序客户端/服务器现在我想创建两个客户端连接到服务器和一起聊天的应用程序 这是我的代码


//服务器代码
public class MainActivity extends AppCompatActivity { private TextView textview;     private Button btnchat;     private EditText editText;     Handler handler=new Handler();     private Socket socket;     BufferedReader inputstream;     DataOutputStream outputStream;

`@Override`
`protected void onCreate(Bundle savedInstanceState) {`
    `super.onCreate(savedInstanceState);`
    `setContentView(R.layout.activity_main);`
    `textview=(TextView)findViewById(R.id.textview);`
    `btnchat=(Button)findViewById(R.id.chatbutton);`
    `editText=(EditText)findViewById(R.id.edittext);`


    `Thread t=new Thread(new Runnable() {`
        `@Override`
        `public void run() {`

            `try {`

                `ServerSocket serverSocket=new ServerSocket(9000);`
                `log("watinng for client");`
                `socket =serverSocket.accept();`
                `log("a new client connected");`
                `outputStream=new` `DataOutputStream(socket.getOutputStream());`
                `inputstream=new BufferedReader(new` `InputStreamReader(socket.getInputStream()));`
                `log("buffer initialized");`
                `while (true){`
                    `String getfromserver=inputstream.readLine();`

                    `log(getfromserver);`
                `}`
                `//outputStream.write("hello from server\n".getBytes());`
            `} catch (IOException e) {`
                `e.printStackTrace();`
            `}`
        `}`
    `});`
            `btnchat.setOnClickListener(new View.OnClickListener() {`
        `@Override`
        `public void onClick(View v) {`

            `try {`
                `outputStream.write((editText.getText()+"\n").getBytes());`
                `editText.setText("");`
            `} catch (IOException e) {`
                `e.printStackTrace();`
            `}`


        `}`
    `});`
    `t.start();`
`}`
`public void log(final String message){`
    `handler.post(new Runnable(){`
        `@Override`
    `public void run(){`
            `textview.setText(textview.getText()+"\n"+ message);`
        `}`


    `});`
`}`

`@Override`
`public boolean onKeyDown(int keyCode, KeyEvent event) {`
    `if(keyCode==KeyEvent.KEYCODE_BACK){`
        `System.exit(0);`
        `return true;`
    `}`
    `return super.onKeyDown(keyCode, event);`
`}`

}


//我的客户代码
public class MainActivity extends AppCompatActivity {

`private Handler handler=new Handler();`
`private TextView textview;`
`private Button btnchat;`
`private EditText editText;`
`private Socket socket;`
`BufferedReader inputstream;`
`DataOutputStream outputStream;`

`@Override`
`protected void onCreate(Bundle savedInstanceState) {`
    `super.onCreate(savedInstanceState);`
    `setContentView(R.layout.activity_main);`
    `textview=(TextView)findViewById(R.id.textview);`
    `btnchat=(Button)findViewById(R.id.chatbutton);`
    `editText=(EditText)findViewById(R.id.edittext);`
    `//server ip: 192.168.43.54`

    `Thread thread=new Thread(new Runnable() {`
        `@Override`
        `public void run() {`

            `try {`
                `log("connecting");`
                `socket=new Socket("192.168.43.54",9000);`

                `log("connected");`
                `outputStream=new` `DataOutputStream(socket.getOutputStream());`
                `inputstream =new BufferedReader(new` `InputStreamReader(socket.getInputStream()));`
           `log("buffer initialized");`
               `// outputStream.write("hello from client\n".getBytes());`
                `while (true){`
                    `String getfromserver=inputstream.readLine();`
                    `log(getfromserver);`
                `}`

            `} catch (IOException e) {`
                `e.printStackTrace();`
            `}`

        `}`
    `});`
    `btnchat.setOnClickListener(new View.OnClickListener() {`
        `@Override`
        `public void onClick(View v) {`
            `try {`
               `if(outputStream==null){`
                   `return;`
               `}`
                `outputStream.write((editText.getText()+"\n").getBytes());`
                `editText.setText("");`
            `} catch (IOException e) {`
                `e.printStackTrace();`
            `}`

        `}`
    `});`
    `thread.start();`


`}`
`public void log(final String message){`
    `handler.post(new Runnable() {`
        `@Override`
        `public void run() {`

            `textview.setText(textview.getText()+"\n"+message);`

        `}`
    `});`
`}`

`@Override`
`public boolean onKeyDown(int keyCode, KeyEvent event) {`
    `if(keyCode==KeyEvent.KEYCODE_BACK){`
        `System.exit(0);`
        `return true;`
    `}`
    `return super.onKeyDown(keyCode, event);`
`}`

}
请帮助我,我需要帮助,
//英语借口

0 个答案:

没有答案