安卓APP(7)——安卓网络编程

文章介绍了在安卓环境中进行Socket服务端开发时需要注意的关键点,特别是强调了网络访问不能在主线程(UI线程)中进行,否则会导致程序崩溃。解决方案是创建新线程进行网络操作,例如建立Socket连接,发送数据到指定IP和端口。
摘要由CSDN通过智能技术生成

一、安卓Socket之服务端开发

  • 安卓Socket客户端开发注意事项:
    网络访问不能在主线程(UI线程)中进行,否则程序会崩溃。
    要创建线程来发起网络访问。
    package com.example.jiangyo.learn;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.util.Scanner;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	}
    	
    	public void Socket_Client()
    	{
    		new Thread(new Runnable() {
    			
    			public void run() {
    				// TODO Auto-generated method stub
    				try {
    					//连接服务端
    					Socket client = new Socket("192.168.101.77", 8080);
    					OutputStream out = client.getOutputStream();
    					String mes = "massege frome Android";
    					out.write(mes.getBytes());//发送通道发送数据
    				} catch (UnknownHostException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}).start();
    	}
    
    	//该函数为主页面的Onclieck函数,点击Button后跳转到第二个页面并连接服务器。
    	public void gotoSecondPage(View v)
    	{
    		Socket_Client();
    		
    		
    		//设置跳转的页面
    		Intent intent = new Intent(this, SecActivity.class);
    		//实行跳转
    		startActivity(intent);
    	}
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值