服务器端

package socket_util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;public class Server {    public void run() throws IOException{        //服务端socket对象        ServerSocket serverSocket = new ServerSocket();        serverSocket.bind(new InetSocketAddress("127.0.0.1",1234));        while(true) {            Socket socket = serverSocket.accept();            //接收客户端发来的数据            InputStream is = socket.getInputStream();            InputStreamReader isr = new InputStreamReader(is);            BufferedReader br = new BufferedReader(isr);            String str = null;            if( (str = br.readLine()) != null) {                System.out.println(str);            }            socket.close();        }    }    public static void main(String[] args) {        Server s = new Server();        System.out.println("服务器端开启");        try {            s.run();        } catch (IOException e) {            System.out.println("IO异常");            e.printStackTrace();        }    }}

客户端

package socket_util;import java.io.IOException;import java.net.Socket;public class Client {    public void send(String data) throws IOException {        //创建socket对象,指定ip、port        Socket socket = new Socket("127.0.0.1", 1234);        //将数据传到输出管道字节流发送到服务器端        socket.getOutputStream().write(data.getBytes());        //清空IO管道重的缓存数据        socket.getOutputStream().flush();        socket.close();    }    public static void main(String[] args) {        Client c = new Client();        try {            c.send("123456789,nimabinijiehunlema");            System.out.println("发送成功");        } catch (IOException e) {            System.out.println("IO异常");            e.printStackTrace();        }    }}

扫描服务器端是否开启

package socket_util;import java.io.IOException;import java.net.InetSocketAddress;import java.net.Socket;import java.net.SocketAddress;/* * 必须在服务器端开启的时候才能扫描成功 */public class ScanPorts {    private int minPort, maxPort;    public ScanPorts(int minPort, int maxPort) {        this.minPort = minPort;        this.maxPort = maxPort;    }    public void run() throws IOException {        for(int i = minPort; i <= maxPort; i++) {            Socket socket = new Socket();            SocketAddress socketAddress = new InetSocketAddress("127.0.0.1", i);            socket.connect(socketAddress, 50);            System.out.println(i + ":ok");            socket.close();        }    }    public static void main(String[] args) {        ScanPorts sc = new ScanPorts(1234, 1234);        try {            sc.run();        } catch (IOException e) {            e.printStackTrace();        }    }}

运行结果截图

  • 运行服务器端Server.java

  • 运行扫描端ScanPorts.java

  • 运行服务器端Client.java

  • 这是打开之前服务器端的控制台输出,会显示发送来的数据

项目聊天APP实例

具体不介绍了,链接如下:
https://github.com/wangleihitcs/MyChat

更多相关文章

  1. android wifi 操作
  2. Android在外部修改了工程名文件夹名称,报错
  3. Android(安卓)运行时权限
  4. android保持在休眠时,后台程序继续运行(让程序获取设备电源锁)
  5. android 扫描SD卡与系统文件
  6. 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解
  7. 关于listView.setAdapter(adapter)报空指针异常的问题
  8. Android(安卓)bluetooth介绍(三): 蓝牙扫描(scan)设备分析
  9. webrtc 针对 android 平台的编译和运行

随机推荐

  1. Android(安卓)自定义自由选择时间区间的
  2. 微信互动 | Android(安卓)11 新功能你知
  3. Android轻量级路由框架LiteRouter
  4. 在 Android(安卓)开发中使用协程 | 上手
  5. 非985、211毕业,我是如何加入腾讯的?(附Andr
  6. Android中多进程的应用
  7. 字节跳动大牛最佳整理:582页Android(安卓)
  8. 2020年Android开发市场真的饱和了吗?
  9. Android在Service服务中调用Activity活动
  10. Android(安卓)超简单集成活体检测技术 快