Java入门13(socket)
  c7AEHW9VXsid 2023年11月01日 114 0

Socket编程(网络通信)

服务器端Demo(ServreSocket)

​ 创建服务端时,如果不提供IP地址,则默认为本地连接(127.0.0.1),但是一定需要手动配置监听端口!

public static void main(String[] args) {
    // 如果不提供IP地址,默认localhost
    // 但是服务器端的端口号需要手动指令
    try(ServerSocket serverSocket = new ServerSocket(10086);
        // 服务器端会一直阻塞在这个位置,等待客户端接入,客户端会在向服务器端发送请求的时候,会将客户端本身(socket对象)发送过来
        Socket s = serverSocket.accept()) {
        System.out.println("服务器正在监听:");
        // 从客户端获取对应的输入流
        InputStream inputStream = s.getInputStream();
        // 将输入流进行二次封装,封装为数据流
        DataInputStream dis = new DataInputStream(inputStream);
        // 使用数据流的方法读取字符串
        String str = dis.readUTF();
        System.out.println(str);
        // 关闭流
        dis.close();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

客户端Demo(Socket)

​ 创建客户端时,客户对象的端口由操作系统自动分配,参数传递服务端的IP地址以及服务器监听的端口

public static void main(String[] args) {
    try(Socket s = new Socket("localhost",10086);
        // 提供一个输出流,用于写入数据
        OutputStream os = s.getOutputStream();
        // 二次封装
        DataOutputStream dos = new DataOutputStream(os)) {
        dos.writeUTF("Can you hear me?");
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   110   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
c7AEHW9VXsid