Android TCP客户端发送数据

Android TCP客户端发送数据,android,tcpclient,Android,Tcpclient,我正在尝试制作一个简单的TCP android客户端,它应该使用异步任务连接一次服务器,然后单击按钮发送几条消息 我设法以这种方式制作了连接部分: class TcpTask extends AsyncTask<String, String, Void>{ Socket socket; PrintWriter outToServer; @Override protected Void doInBackground(String... params)

我正在尝试制作一个简单的TCP android客户端,它应该使用异步任务连接一次服务器,然后单击按钮发送几条消息

我设法以这种方式制作了连接部分:

class TcpTask extends AsyncTask<String, String, Void>{

    Socket socket;
    PrintWriter outToServer;

    @Override
    protected Void doInBackground(String... params) {

        try
        {
            socket = new Socket("192.168.2.168", 1234);

            outToServer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
            outToServer.print("Ciao");
            outToServer.flush();




        }
        catch(Exception e)
        {
            System.out.print("Whoops! It didn't work!:");
            System.out.print(e.getLocalizedMessage());
            System.out.print("\n");
        }

        return null;
    }





}
类TcpTask扩展异步任务{ 插座; PrintWriter输出服务器; @凌驾 受保护的Void doInBackground(字符串…参数){ 尝试 { 插座=新插座(“192.168.2.168”,1234); outToServer=新的PrintWriter(新的OutputStreamWriter(socket.getOutputStream()); 输出服务器打印(“Ciao”); outToServer.flush(); } 捕获(例外e) { System.out.print(“哎哟!它没用!:”; System.out.print(例如getLocalizedMessage()); 系统输出打印(“\n”); } 返回null; } } 但我无法向服务器发送其他消息,也无法从onPostexecuted方法发送消息,也无法从传递outToServer PrintWriter的MainActivity发送消息


有没有办法实现这一点,或者每次我想发送消息时都必须创建一个新的套接字?

没有。您可以使用相同的套接字和流。但是所有的internet代码都必须在另一个异步任务或线程中。好的,那么我必须将outToServer PrintWriter传递给另一个异步任务吗?怎么做?你为什么打电话给PrintWriter outToServer?您编写了不可读的代码。请将PrintWriter变量设置为活动的成员。不属于asynctask。否。您可以使用相同的套接字和流。但是所有的internet代码都必须在另一个异步任务或线程中。好的,那么我必须将outToServer PrintWriter传递给另一个异步任务吗?怎么做?你为什么打电话给PrintWriter outToServer?您编写了不可读的代码。请将PrintWriter变量设置为活动的成员。不属于异步任务。