Android基于TCP协议的Socket通信完整详细易懂例子(一)(记录学习)

最近这段时间因为公司的业务没有那么的紧,所以也会偶尔有一些自己的自由时间去做自己想做的事,最近也一直在琢磨socket 然后就写了一个详细易懂的demo分享给大家
在这里呢 那些tcp,udp的区别和什么tcp三次握手我这里就不说了(主要我现在也不太懂)百度一下你就知道
好了 废话不多 直接开始:
首先来一个流程图 根据这个图片就可以清楚知道使用TCP协议进行通信的实现的过程
在这里插入图片描述
然后再来一个简单却不失详细的demo
这里服务端的实现我用的是eclipse进行实现的

public class SocketServiceTcp {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println("开始了臭弟弟:");
		  try {
			    //1.创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
				ServerSocket serverSocket = new ServerSocket(12345);
				Socket socket = null;
				//2.调用accept()等待客户端连接
				System.out.println("~~~服务端已就绪,等待客户端接入");
				socket = serverSocket.accept();
				//3.连接后获取输入流,读取客户端信息
				InputStream is=null;
				InputStreamReader isr=null;
				BufferedReader br=null;
				is = socket.getInputStream();     //获取输入流
				isr = new InputStreamReader(is,"UTF-8");
				br = new BufferedReader(isr);
				String info = null;
				while((info=br.readLine())!=null){//循环读取客户端的信息
					System.out.println("客户端发送过来的信息" + info);
				}
				socket.shutdownInput();//关闭输入流
				socket.close();
           
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (Exception e) {
           e.printStackTrace();
       }
	}

}

Android客户端的实现

 btna.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                           
                            Socket socket = new Socket("192.168.30.83",12345);
                            OutputStream os = socket.getOutputStream();
                            os.write("弟弟救我".getBytes());
                            OutputStreamWriter writer = new OutputStreamWriter(os,"UTF-8");
                            writer.flush();
                            socket.shutdownOutput();
                            socket.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
                }
                });

实现的效果:
在这里插入图片描述
这就完成了客户端往服务器端发送数据

发布了43 篇原创文章 · 获赞 60 · 访问量 6751

猜你喜欢

转载自blog.csdn.net/yuhang01/article/details/103261561