为了账号安全,请及时绑定邮箱和手机立即绑定

Java Socket应用---通信是这样练成的

难度初级
时长 2小时 0分
学习人数
综合评分9.77
496人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.6 逻辑清晰
  • 限于个人能力,没有能实现服务器端的多线程。

    注册、登录、上传文件到数据库的功能基本都实现了。

    源代码:

    https://pan.baidu.com/s/1TahTLXp2STzADhuehOMX5Q?pwd=13e5 

    查看全部
  • 基于UDP的Socket通信实现多线程:

    /**
    *服务器端
    */
    package com.imooc.UDPTest;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    public class Server {
        public static void main(String[] args) throws IOException {
            //创建服务器端DatagramSocket,指定端口
            DatagramSocket socket=new DatagramSocket(8800);
            byte[] data=new byte[1024];
            DatagramPacket packet=new DatagramPacket(data,data.length);
            System.out.println("服务器端已经启动,等待客户端发送数据");
            int count=0;
            while (true){
                socket.receive(packet);//此方法在接收到数据包之前会一直堵塞
                Thread serverThread=new ServerThread(socket,packet,data);
                serverThread.start();
                InetAddress address=packet.getAddress();
                System.out.println("当前客户端IP:"+address.getHostAddress());
                count++;
                System.out.println("当前客户端数量:"+count);
            }
    
        }
    }
    /**
    *服务器线程处理类
    */
    package com.imooc.UDPTest;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    
    public class ServerThread extends Thread{
        DatagramSocket socket=null;
        DatagramPacket packet=null;
        byte[] data=null;
        public ServerThread(DatagramSocket socket,DatagramPacket packet,byte[] data){
            this.socket=socket;
            this.packet=packet;
            this.data=data;
        }
        public void run() {
            String info=new String(data,0,packet.getLength());
            System.out.println("我是服务器,客户端说:"+info);
            InetAddress address=packet.getAddress();
            int port=packet.getPort();
            data="欢迎您".getBytes();
            packet=new DatagramPacket(data,data.length,address,port);
            try {
                socket.send(packet);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
    
        }
    
    }
    /**
    *客户端
    */
    package com.imooc.UDPTest;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    public class Client {
        public static void main(String[] args) throws IOException {
            //定义服务器的地址、端口号、数据
            InetAddress address=InetAddress.getByName("DESKTOP-M8K8E0E");
            int port=8800;
            byte[] data="用户名:admin;密码:123".getBytes();
            //创建数据报,包含发送的数据信息
            DatagramPacket packet=new DatagramPacket(data,data.length,address,port);
            //创建DatagramSocket对象
            DatagramSocket socket=new DatagramSocket();
            socket.send(packet);
    
            byte[] data1=new byte[1024];
            DatagramPacket packet1=new DatagramPacket(data1,data1.length);
            socket.receive(packet1);
            String info=new String(data1,0,packet1.getLength());
            System.out.println("我是客户端,服务器说:"+info);
            socket.close();
    
        }
    }
    查看全部
  • 不错,项目思路清晰
    查看全部
  •  对象

    查看全部
    0 采集 收起 来源:Socket 总结

    2021-12-12

  •  

    传输对象

    查看全部
    0 采集 收起 来源:Socket 总结

    2021-12-12

  • 传递

    查看全部
    0 采集 收起 来源:Socket 总结

    2021-12-12

  • 传递文件

    查看全部
    0 采集 收起 来源:Socket 总结

    2021-12-12

  • http://img1.sycdn.imooc.com//61834e38000163be08120429.jpg四大类

    查看全部
    0 采集 收起 来源:网络基础简介

    2021-11-04

  • http://img1.sycdn.imooc.com//61834dd60001f3c413150705.jpgip地址和端口号组成了scoket

    查看全部
    0 采集 收起 来源:网络基础简介

    2021-11-04

  • http://img1.sycdn.imooc.com//61834cdb00013a5007020487.jpghttp超文件传输协议

    查看全部
    0 采集 收起 来源:网络基础简介

    2021-11-04

  • 两台计算机要想能够进行 通信,需要满足一些必要的条件

    1. 唯一的标识:ip;用来标识自己的身份以及自己所处的地址

    2. 需要共同的语言;即协议

    3. 相应的端口号:每个主机上可以运行多个应用程序,使用端口号来决定与哪个应用进行通信

    TCP/IP是目前世界上使用最为广泛的协议

    1.     TCP(Transmission Control Protocol)传输控制协议

    2.     IP:Internet Protocol 互联网协议


    查看全部
    0 采集 收起 来源:网络基础简介

    2021-10-21

  • 该套课程重点知识

    查看全部
    0 采集 收起 来源:Socket 总结

    2021-08-16

  • UDP的两个编程主要类

    查看全部
    0 采集 收起 来源: DatagramPacket

    2021-08-16

  • socket多客户端通信

    查看全部
  • socket 通信模型和实现步骤

    查看全部
    0 采集 收起 来源:Socket 简介

    2021-08-13

  • socket过程中要考虑优先级,这影响到运行效率
    查看全部
    0 采集 收起 来源:Socket 总结

    2021-06-21

  • 多线程通信
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程是 Java 开发课程的高级课程,需要对 Java 中的面向对象、IO、多线程,以及网络相关知识有一定的基础
老师告诉你能学到什么?
1、网络相关的基础知识 2、Java 中网络相关 API 的应用 3、实现基于 TCP 的 Socket 编程 4、实现基于 UDP 的 Socket 编程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!