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

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

难度初级
时长 2小时 0分
学习人数
综合评分9.77
496人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.6 逻辑清晰
  • 1.使用多线程编写网络程序时,可以将线程的优先级降低,线程的优先级默认是五,降低到4.这是老师工作的经验 2.在最后直接关闭socket即可,socket的关闭会自动的关闭输入输出流 3.可以将一个对象序列化之后,通过流的方式在网络上传输 4.网络上传输文件,也是将文件转换为流,通过流的方式在网络上传输
    查看全部
    1 采集 收起 来源:Socket 总结

    2017-11-05

  • 应用多线程来实现服务器与多客户端之间的通信 基本步骤 1.服务器端创建ServerSocket,循环调用accept()等待客户端连接 2.客户端创建一个socket并请求和服务器端连接 3.服务器端接收客户端请求,创建socket与该客户建立专线连接 4.建立连接的两个socket在一个单独的线程上对话 5.服务器端继续等待新的连接 ---------------------------------------------- 服务器线程处理类 public class ServerThread extends Thread { //和本线程相关的socket Socket socket=null; public ServerThread(Socket socket) { this.socket=socket; } //线程执行的操作,响应客户端的请求 public void run() { //获取输入流,并读取客户端信息 //获取输出流,反馈信息给客户端 } } --------------------------- 服务器的修改 Socket socket=null; //记录客户端的数量 int count=0; //循环监听等待 while(true) { //调用accept()方法开始监听,等待客户端的连接 socket=serverSocket.accept(); //创建一个新的线程 ServerThread serverThread=new ServerThread(socket); //启动线程 serverThread.start(); count++; System.out.println(count); //获取当前客户端的IP InetAddress address=socket.getInetAddress(); System.out.println("当前客户端的IP:"+address.getHostAddress()); }
    查看全部
  • 客户端 1.定义服务器的地址、端口号、数据 InetAddress address=InetAddress.getByName("localhost"); int port=8800; byte[]data="用户名:admin;密码:123".getBytes(); //创建数据报,包含发送的数据信息 DatagramPacket packet=new DatagramPakcet(data,data.length,address,port); //创建DatagramSocket的对象 DatagramSocket socket=new DatagramSocket(); //向服务器发送数据报 socket.send(packet); //接收服务器发送过来的消息 //创建数据报,用于接收服务器响应的数据 byte[]data2=new byte[1024]; DatagramPacket packet2=new DatagramPacket(data2,data2.length); //接收服务器响应的数据 socket.receive(packet2); //读取数据 String reply=new String(data2,0,packet2.getLength()); System.out.println("我是客户端,服务器说:"+reply); //关闭资源 socket.close(); -------------------------------------- 服务端响应数据 //定义客户端的地址、端口号、数据 IneetAddress address=packet.getAddress(); int port=packet.getPort(); byte[]data2="欢迎你!".getBytes(); //创建数据报,包含响应的数据信息 DatagramPacket packet2=new DatagramPacket(data2,data2.length,address,port); //响应客户端 socket.send(packet2); //关闭资源 socket.close();
    查看全部
  • 服务器端,实现基于UDP的用户登录 //创建服务器端DatagramSocket,指定端口 DatagramSocket socket=new DatagramSocket(8800); //创建数据报,用于接收客户端发送的数据 byte[]data=new byte[1024];//创建字节数组,指定接收的数据报的大小 DatagramPacket packet=new DatagramPacket(data,data.length); //接收客户端发送的数据 socket.receive(packet);//此方法在接收到数据之前会一直阻塞 //读取数据 String info=new String(data,0,packet.getLength()); System.out.print("我是服务器,客户端说:"+info);
    查看全部
  • 应用多线程来实现服务器与多客户端之间的通信 基本步骤 1.服务器端创建ServerSocket,循环调用accept()等待客户端连接 2.客户端创建一个socket并请求和服务器端连接 3.服务器端接收客户端请求,创建socket与该客户建立专线连接 4.建立连接的两个socket在一个单独的线程上对话 5.服务器端继续等待新的连接 ---------------------------------------------- 服务器线程处理类 public class ServerThread extends Thread { //和本线程相关的socket Socket socket=null; public ServerThread(Socket socket) { this.socket=socket; } //线程执行的操作,响应客户端的请求 public void run() { //获取输入流,并读取客户端信息 //获取输出流,反馈信息给客户端 } } --------------------------- 服务器的修改 Socket socket=null; //记录客户端的数量 int count=0; //循环监听等待 while(true) { //调用accept()方法开始监听,等待客户端的连接 socket=serverSocket.accept(); //创建一个新的线程 ServerThread serverThread=new ServerThread(socket); //启动线程 serverThread.start(); count++; System.out.println(count); //获取当前客户端的IP InetAddress address=socket.getInetAddress(); System.out.println("当前客户端的IP:"+address.getHostAddress()); }
    查看全部
  • 客户端 1.创建客户端Socket,指定服务器地址和端口 Socket socket=new Socket("IP地址","端口号"); 2.获取输出流,向服务器发送信息 OutputStream os=socket.getOutputStream();//字节输出流 PrintWriter pw=new PrintWriter(os);//将输出流包装为打印流 pw.write("用户名:admin;密码:123"); pw.flush(); socket.shutdownOutput();//关闭输出流 //关闭相应的资源 pw.close(); os.close(); socket.close();
    查看全部
  • Socket通信 1.TCP协议是面向对象连接、可靠的、有序的,以字节流的方式发送数据 2.基于TCP协议实现网络通信的类 客户端的Socket类 服务器端的ServerSocket类 --------------------------------------------- Socket通信实现步骤 1.创建ServerSocket和Socket 2.打开连接到Socket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关闭输入输出流、关闭Socket
    查看全部
    1 采集 收起 来源:Socket 简介

    2017-08-01

  • 使用URL读取页面内容 //创建一个URL实例 URL url =new URL("http://www.baidu.com"); //通过URL的openStream方法获取URL对象所表示的资源的字节输入流 InputStream is=url.openStream(); //将字节输入流转换成字符输入流 InputStreamReader isr=new InputStreamReader(is,"utf-8"); //将字符输入流添加上缓冲 BufferedReader br=new BufferedReader(isr); String data=br.readLine();//读取数据 while(data!=null) {//循环读取数据 System.out.println(data); data=br.readLine(); }
    查看全部
  • URL
    查看全部
  • Socket编程 一、网络基础知识 两台计算机要通过网络进行通信,必须具备:a、唯一的标识(IP地址); b、需要共同的语言(协议); c、辨别不同应用程序(端口号)。 1、IP地址: 每台计算机的唯一标识,用来区分网络中的不同主机,是两台主机进行网络通信必不可少的。IPv4 2、协议: a、TCP/IP协议:目前世界上应用最为广泛的协议。是以TCP和IP为基础的不同层次上多个协议的集合。 也称为:TCP/IP协议族 或者 TCP/IP协议栈。 b、TCP: Transmission Control Protocol 传输控制协议 c、IP :Internet Protocol 互联网协议 d、TCP/IP模型(网络分层):1、物理层;网线。。。 2、数据链路层 3、网络层 4、传输层:TCP/IP协议 5、应用层:HTTP超文本传输协议、FTP文件传输协议、SMTP简单邮件传送协议、Telnet远程登录服务。 3、端口号: a、用于区分不同的应用程序; b、端口号范围为0-65535,其中0-1023为系统所保留; c、IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础。 d、常用端口号-- http: 80; ftp; 21; telnet; 23。 JAVA中得网络支持 针对网络通信的不同层次,Java提供的网络功能有四大类: 1、InetAddress:用于标识网络上的硬件资源。(IP地址) 2、URL:统一资源定位符---通过URL可以直接读取或写入网络上得数据。 3、Sockets:使用TCP协议实现网络通信的Socket相关的类。 4、Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信。
    查看全部
    1 采集 收起 来源:网络基础简介

    2017-06-27

  • 客户端: package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /** * UDP客户端 * @author Administrator * */ public class UDPClient { public static void main(String[] args) throws IOException { //1.定义服务器的地址、端口号、数据 InetAddress address=InetAddress.getByName("localhost"); int port=8800; byte[] data="用户名:admin;密码:123".getBytes(); //2.创建数据报,包含发送的信息,服务器地址,端口,数据 DatagramPacket packet=new DatagramPacket(data, data.length, address, port); //3.创建DatagramSocket对象 DatagramSocket socket=new DatagramSocket(); //4.向服务器端发送数据报 socket.send(packet); /** * 接受服务器端的响应 */ //1.创建数据报,用于接受服务器端响应数据 byte[]data2=new byte[1024]; DatagramPacket packet2=new DatagramPacket(data2, data2.length); //2.接受数据 socket.receive(packet2); //3.读取数据 String reply=new String(data2,0,packet2.getLength()); System.out.println("我是客户端,服务器说:"+reply); //4.关闭资源 socket.close(); } }
    查看全部
  • package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; /** * 服务器端,实现基于UDP的用户登录 * * @author Administrator * */ public class UDPServer { public static void main(String[] args) throws IOException { // 1.创建服务器端datagramSocket,指定端口 DatagramSocket socket = new DatagramSocket(8800); int count=0; while (true) { /** * 接受客户端的数据 */ // 2.创建数据报,用于接受客户端发送的信息 byte[] data = new byte[1024];// 创建字节数组,指定接受的数据报的大小 DatagramPacket packet = new DatagramPacket(data, data.length); // 3.接受客户端发送的数据报 socket.receive(packet);// 此方法在接受到数据报之前会阻塞 UDPServerThread serverThread=new UDPServerThread(socket, packet); serverThread.start(); count++; //输出客户端的地址 System.out.println("客户端地址"+count+":"+packet.getAddress()); } // //4.关闭资源 // socket.close(); } }
    查看全部
  • 老师在Server里面拷贝过来的那段代码,是怎么抛异常的?用的什么快捷键? shift+alt+z快捷键可以直接对整个语句块进行try catch操作
    查看全部
  • socket2
    查看全部
    1 采集 收起 来源:Socket 简介

    2017-03-13

  • 一、UDP编程 UDP协议(用户数据报协议)是无连接的、不可靠的、无序的。 UDP协议以数据报作为数据传输额载体。进行数据传输时,首先要将要传输的数据定义成数据报(Datagram),在数据报中指明数据所要达到的Socket(主机地址和端口号),然后再将数据报发送出去。 二、相关操作类 DatagramPacket:表示数据报包 DatagramSocket:进行端到端通信的类
    查看全部
    1 采集 收起 来源: DatagramPacket

    2017-03-13

举报

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

微信扫码,参与3人拼团

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

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