栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android客户端与服务器通信

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android客户端与服务器通信

Android socket编程
服务端:
1、指定端口对serversocket进行事例化
2、调用ServerSocket的accepet()方法防止在链接期间造成阻塞
3、获取底层Socket流对并对其进行读写操作
4、将数据封装成流
5、对Socket进行读写
6、关闭所有打开的输入输出流

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.ServerSocket;
import java.net.Socket;
public class Server implements Runnable{
	pubulic void run(){
		try{
		//创建ServerSocket 在端口66788 监听客户请求
		ServerSocket serverSocket = new ServerSocket(66788);
		while(ture){
			//接收客户端的请求
			Socket client = serverSocket.accept();
			System.out.println("already accept");
			try{
				BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
				String str = in.readLine();
				System.out.println("read:" + str);
				//向服务器发送消息
				PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),ture);
				out.println("serever message");
				//关闭流
				out.close();
				in.close();
			}catch (Exception e){
				System.out.println(e.getMessage());
				e.printStackTrace();
			}finally{
				//关闭
				client.close();
				System.out.println("close");
			}
		}
		}catch (Exception e){
			System.out.println(e.getMessage());
		}
	}
	//main函数,开启服务器
	public static void main(String a[]){
		Thread desktopServerThread = new Thread(new Server());
		desktopServerThread.start();
	}
}

客户端
1、通过IP地址和端口实例化请求连接服务器
2、获取Socket上的流以进行读写
3、把流包进BufferedReader / PrintWriter 的事例;
4、对Socket进行读写
5、关闭打开流

public class Activity01 extends Activity{
	private final String DEBUG_TAG = "Activity01";
	private TextView mTextView = null;
	private EditText mEditText = null;
	private Button mButton = null;
	
	@Override
	public void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContantView(R.layout.main);
		mButton = (Button)findViewById(R.id.Button01);
		mTextView = (TextView)findViewById(R.id.TextView01);
		mEditText = (EditText)findViewById(R.id.EditText01);
		//登陆
		mButton.setOnClickListener(new onClickListener()){
			public void onClick(View v){
				Socket socket null;
				String message = mEditText.getText().toString() + "rn";
				try{
					//创建Socket
					socket = new Socket("192.168.1.6",66788);
					//向服务器发送消息
					PrintWriter out = new PrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),ture);
					out,println(message);
					//接收来自服务器的消息
					BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
					String msg = br.readLine();
					if(msg != null){
						mTextView.setText(msg);
					else{
						mTextView.setText("数据错误");
					}
					//关闭流
					out.close();
					br.close();
					//关闭Socket
					socket.close();
				}catch (Exception e){
					//
					Log.e(DEBUG_TAG,e.toString());
					}
				}
			}
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/708916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号