为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java Socket应用---通信是这样练成的_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

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

汤小洋 全栈工程师
难度初级
时长 2小时 0分
  • aaaa
    查看全部
    0 采集 收起 来源:网络基础简介

    2015-11-05

  • socket: ip+port
    查看全部
    0 采集 收起 来源:网络基础简介

    2015-11-05

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

    2015-11-05

  • 使用TCP通信传输对象
    查看全部
    0 采集 收起 来源:Socket 总结

    2015-11-05

  • 关闭socket,不关闭输入输出流
    查看全部
    0 采集 收起 来源:Socket 总结

    2015-11-05

  • 卧槽,居然不能够取消
    查看全部
    0 采集 收起 来源:网络基础简介

    2015-11-04

  • serverSocket 步骤
    查看全部
  • http占用80端口 ftp占用23 Telnet占用23
    查看全部
    0 采集 收起 来源:网络基础简介

    2015-11-04

  • socket客户端
    查看全部
  • socket服务器端
    查看全部
  • socket
    查看全部
  • 基于UDP通信的客户端 InetAddress address = InetAddress.getLocalHost(); //因为例子都是在本机,所以获取本机的InetAddress实例 byte[] datas="我是客户端,用户:fantastic 密码:23".getBytes(); //传送信息内容转为字节数组 DatagramPacket packet=new DatagramPacket(datas,datas.length,address,9854); //定义传送的数据报包,4个参数 DatagramSocket socket=new DatagramSocket(); //创建数据报Socket;用于发送. socket.send(packet); byte[] datas2=new byte[1024]; //定义有长度但空的字节数组为了存放服务器响应的信息. DatagramPacket packet2=new DatagramPacket(datas2,datas.length); //定义接收的数据报包 socket.receive(packet2); //接收服务器的响应. String string=new String(datas2, 0, packet2.getLength()); //把接收道的信息转为字符串输出. System.out.println("我客户端,服务器回我说"+string); socket.close();
    查看全部
  • 基于UDP的通信 服务器端 DatagramSocket socket=new DatagramSocket(9854); //设置服务器端的端口号 byte [] datas=new byte[1024]; DatagramPacket packet=new DatagramPacket(datas, datas.length); //把字节数组用于数据报包存放的载体 socket.receive(packet); //通过数据报包传送信息,接收信息放到数据报包的字节数组中 String string=new String(datas, 0, packet.getLength()); //把接收到的信息转为字符串输出 System.out.println("我是服务器,客户端说:"+string); InetAddress address=packet.getAddress(); //通过客户端传来的数据报包中的内容来获取客户端的地址.通过数据报包的getAddress方法. int port=packet.getPort(); //通过数据报包的getPort方法获取客户端的端口号. byte []datas2="欢迎你".getBytes(); DatagramPacket packet2=new DatagramPacket(datas2, 0, datas2.length, address, port); //新定义一个数据报包,把要传送的数据放入数据报包中,且参数包含要传送的地址与端口号. socket.send(packet2); //通过数据报Socket的send方法传送信息. socket.close(); //关闭数据报Socket 可以把UDP通信的数据传递想成数据报之间传递信息,服务器中定义一个接收信息的空数据报包,当另一个带数据的数据报包传送过来时,把其包的数据信息传递给空的另一个包,然后本来空的包就获得了信息,包含了用户定义的数据信息,与此客户端的地址与端口号信息,所以可以通过接收信息的数据报包(原本是空的)的getAddress()和getPort()方法来获取客户端的地址和端口号.
    查看全部
  • 多线程实现服务器端 在ServerSocket类的main方法中 ServerSocket serverSocket=new ServerSocket(8800); int count=0; System.out.println("***服务器即将启动,等待客户端的连接***"); while(true){ Socket socket=serverSocket.accept();//调用accept()方法开始监听,等待客户端的连接 Server2 serverThread=new Server2(socket);//创建一个新的线程 serverThread.start(); count++;//统计客户端的数量 System.out.println("客户端的数量:"+count); InetAddress address=socket.getInetAddress();//此socket是通过监听客户端返回的,所以会有客户端的地址和端口 System.out.println("当前客户端的IP:"+address.getHostAddress()); 在继承于线程的类中(不需要main方法),存在class Server2 extends Thread Socket socket=null; public Server2(Socket socket){ this.socket=socket; } public void run(){ InputStream isr = socket.getInputStream(); InputStreamReader is=new InputStreamReader(isr); BufferedReader i=new BufferedReader(is); String string=i.readLine(); while(string!=null) { System.out.println("我是服务器.客户端说:"+string); string=i.readLine(); } OutputStream br=socket.getOutputStream(); PrintWriter b=new PrintWriter(br); b.println("欢迎你"); b.flush();
    查看全部
  • 多线程服务器
    查看全部

举报

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

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