如何与ServerSocket建立连接?

时间:2014-06-22 08:36:30

标签: android ip port router serversocket

我想开发连接到服务器并发送和接收消息的应用。我真的是初学者。 所以,我用This tutorial编写了这段代码,似乎我在端口或IP地址上出了点错误,因为我没有把消息发送到控制台。我的灵感是问题在于我的路由器设置可能

这是我的android代码(Project android)

public class MainActivity extends Activity {

    Socket client;   
    PrintWriter printWriter; 
    EditText edIp,edPort,edMess;
    String message;
    int port = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

            edIp = (EditText) findViewById(R.id.edIp);
            edPort = (EditText) findViewById(R.id.edPort);
            edMess= (EditText) findViewById(R.id.edMessage);

            edIp.setText("10.0.2.2");
            edPort.setText("4444");
    }


    public void onClick(View v){
        message = edMess.getText().toString();
        edMess.setText("");
        port = Integer.parseInt(edPort.getText().toString());

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                        client = new Socket(edIp.getText().toString(),port);

                        printWriter = new PrintWriter(client.getOutputStream());
                        printWriter.write(message);
                        printWriter.flush();
                        printWriter.close();
                } catch (Exception e) {
                    // TODO: handle exception
                }

            }
        }).start(); 

    }


}

(java aplication)

public class Main {


    public static void main(String[] args) throws IOException {
        Socket clientSocket = null;
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(4444);
        System.out.println("Server started...");
            clientSocket = serverSocket.accept();

        } catch (IOException e) {
            System.err.println("error" + e);
        }

        Scanner in1 = new Scanner(clientSocket.getInputStream());
        String mess;

        while (true) {
            if(in1.hasNext()){
                mess = in1.nextLine();
                System.out.println("Client message : "+mess);
            }

        }

    }

}

0 个答案:

没有答案