android中客服端和服务器端的链接
16lz
2021-01-23
本文主要简单介绍了android手机中模拟客户端和服务器端的通信,其中服务器端的开发使用了JavaSE中的知识,其主要代码如下:
android客服端源码:
- packagecom.socket.client;
- importjava.io.*;
- importjava.net.Socket;
- importjava.net.UnknownHostException;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.text.TextUtils;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.EditText;
- importandroid.widget.Toast;
- publicclassmainextendsActivityimplementsOnClickListener{
- //定义声明需要用到的UI元素
- privateEditTextedtmsgcontent;
- privateButtonbtnSend;
- //ip地址
- privateStringip="10.0.2.2";
- //端口号
- privateintport=8080;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- InitView();
- }
- privatevoidInitView(){
- //通过id获取ui元素对象
- edtmsgcontent=(EditText)findViewById(R.id.msgcontent);
- btnSend=(Button)findViewById(R.id.btnsend);
- //为btnsend设置点击事件
- btnSend.setOnClickListener(this);
- }
- publicvoidonClick(Viewbt){
- try{
- Stringmsg=edtmsgcontent.getText().toString();
- if(!TextUtils.isEmpty(msg))
- SendMsg(ip,port,msg);
- else{
- Toast.makeText(this,"请先输入要发送的内容",Toast.LENGTH_LONG);
- edtmsgcontent.requestFocus();
- }
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- publicvoidSendMsg(Stringip,intport,Stringmsg)
- throwsUnknownHostException,IOException{
- try{
- Socketsocket=null;
- socket=newSocket(ip,port);
- BufferedWriterwriter=newBufferedWriter(newOutputStreamWriter(
- socket.getOutputStream()));
- writer.write(msg);
- writer.flush();
- writer.close();
- socket.close();
- }catch(Exceptione){
- e.printStackTrace();
- }
- }
- }
注意要为其添加权限:
<uses-permission android:name="android.permission.INTERNET" />
服务器端源码:
- importjava.io.BufferedReader;
- importjava.io.InputStreamReader;
- importjava.net.ServerSocket;
- importjava.net.Socket;
- publicclassTCPDesktopServerimplementsRunnable{
- publicstaticfinalStringSERVERIP="10.0.2.2";
- publicstaticfinalintSERVERPORT=8080;
- publicvoidrun(){
- try{
- System.out.println("S:Connecting...");
- ServerSocketserverSocket=newServerSocket(SERVERPORT);
- while(true){
- Socketclient=serverSocket.accept();
- System.out.println("S:Receiving...");
- try{
- BufferedReaderin=newBufferedReader(
- newInputStreamReader(client.getInputStream()));
- Stringstr=in.readLine();
- System.out.println("S:Received:'"+str+"'");
- }catch(Exceptione){
- System.out.println("S:Error");
- e.printStackTrace();
- }finally{
- client.close();
- System.out.println("S:Done.");
- }
- }
- }catch(Exceptione){
- System.out.println("S:Error");
- e.printStackTrace();
- }
- }
- publicstaticvoidmain(Stringa[]){
- ThreaddesktopServerThread=newThread(newTCPDesktopServer());
- desktopServerThread.start();
- }
- }
其结果如下:在android手机端中输入内容
当点击发送时,我们可以看到在服务器端的控制台中输入所接受到的内容
更多相关文章
- Android学习心得(24) --- Android Handler消息机制源码分析
- Android实现网络图片查看器和网页源码查看器
- Android 2.1 源码结构分析 转载
- Android植物大战僵尸附源码
- Android Telephony —— 手机信号实时变化源码分析过程记录
- android 开发之电子钢琴 源码