zoukankan      html  css  js  c++  java
  • 7网络与通信-




    3.android中基于socket的网络通信:

      使用serversocket建立聊天服务器-1:

    MyServerSocker.java:

    package com.jikexueyuan.testmyserverscoket.main;
    
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.net.Socket;
    
    public class ChatSocket extends Thread {
        
        Socket socket;
        
        public ChatSocket(Socket s) {
            this.socket = s;
        }
        
        public void out(String out) {
            try {
                socket.getOutputStream().write(out.getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
        @Override
        public void run() {
            int count = 0;
            while(true) {
                count++;
                out("loop+"+count);
                try {
                    sleep(500);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    ServerListener.java:

    package com.jikexueyuan.testmyserverscoket.main;
    
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    import javax.swing.JOptionPane;
    
    public class ServerListener extends Thread {
    
        @Override
        public void run() {
            try {
                ServerSocket serverSocket = new ServerSocket(12346);
                while(true) {
                    //block
                    Socket socket = serverSocket.accept();
                    //建立连接
                    JOptionPane.showMessageDialog(null,"有客户端链接到了本机的123245端口");
                    //将socket传递给新的线程
                    new ChatSocket(socket).start();
                }
                
                
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    ChatSocket.java:

    package com.jikexueyuan.testmyserverscoket.main;
    
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.net.Socket;
    
    public class ChatSocket extends Thread {
        
        Socket socket;
        
        public ChatSocket(Socket s) {
            this.socket = s;
        }
        
        public void out(String out) {
            try {
                socket.getOutputStream().write(out.getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
        @Override
        public void run() {
            int count = 0;
            while(true) {
                count++;
                out("loop+"+count);
                try {
                    sleep(500);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    使用serversocket建立聊天服务器-2:

  • 相关阅读:
    GOF23设计模式之适配器模式(Adapter)
    浅谈浅克隆(shallow clone)和 深克隆(deep clone)
    GOF23设计模式之原型模式(prototype)
    GOF23设计模式之建造者模式(builder)
    GOF23设计模式之工厂模式(factory)
    GOF23设计模式之单例模式(singleton)
    面向对象设计的六大基本原则
    day38 各种队列、Event事件、协程、猴子补丁
    day37 GIL、同步、异步、进程池、线程池、回调函数
    day36 joinablequeue、多线程理论、多线程的两种使用方式、守护线程、互斥锁、死锁、递归锁、信号量
  • 原文地址:https://www.cnblogs.com/juham/p/15171054.html
Copyright © 2011-2022 走看看