Android实现TCP客户端

Android实现TCP客户端

1.添加相关权限,使得android app可以访问网络

在AndroidManiffest.xml中添加

<uses-permission android:name="android.permission.INTERNET"/>

2.socket的连接

由于android平台的限制,与网络相关的操作只能在子线程中进行,所以这里我们单独建立一个线程用于socket的连接

 //子线程中进行网络相关操作
    class connectthread extends Thread {
   
   

        OutputStream outputStream=null;
        InputStream inputStream=null;
        @Override
        public void run() {
   
   

            //连接
            try {
   
   
                socket=new Socket(a, b);
                runOnUiThread(new Runnable()//不允许其他线程直接操作组件,用提供的此方法可以
                {
   
   
                    public void run()
                    {
   
   
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this,"连接成功",Toast.LENGTH_SHORT).show();

                    }
                });
            } catch (UnknownHostException e) {
   
   
                // TODO Auto-generated catch block
                runOnUiThread(new Runnable()//不允许其他线程直接操作组件,用提供的此方法可以
                {
   
   
                    public void run()
                    {
   
   
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this,"连接失败",Toast.LENGTH_SHORT).show();
                    }
                });
                e.printStackTrace();
            }catch (IOException e) {
   
   
                e.printStackTrace();
                runOnUiThread(new Runnable()//不允许其他线程直接操作组件,用提供的此方法可以
                {
   
   
                    public void run()
                    {
   
   
                        // TODO Auto-generated method stub
                        Toast.makeText(MainActivity.this,"连接失败",Toast.LENGTH_SHORT).show();
                    }
                });
            }
}

socket=new socket(a,b)这一方法可以建立一个tcp连接,其中,a为ip地址,b为端口号
如果连接成功,我们及通过Toast在屏幕中显示“连接成功”,若连接失败,则会转到异常中,我们通过Toast显示“连接失败”。

3.通过输出流发送消息

在子线程中添加以下代码,获取socket的输出流对象
并通过输出流对象的write()方法向服务器发送“123”

 try {
   
   
                outputStream=socket.getOutputStream();
                outputStream.write(123);
            } catch (IOException e) {
   
   
                e.printStackTrace();
            }

以上就是最简单的消息发送,下面我们通过edittext获取输入的内容,并将输入的内容发送给服务器

  //发送
        send.setOnClickListener(new View.OnClickListener() {
   
   
            @Override
            public void onClick(View v) {
   
   
                //子线程中进行网络操作
    new Thread(new Runnable() 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值