-
限于个人能力,没有能实现服务器端的多线程。
注册、登录、上传文件到数据库的功能基本都实现了。
源代码:
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(); } }
查看全部 -
不错,项目思路清晰查看全部
-
对象
查看全部 -
传输对象
查看全部 -
传递
查看全部 -
传递文件
查看全部 -
四大类
查看全部 -
ip地址和端口号组成了scoket
查看全部 -
http超文件传输协议
查看全部 -
两台计算机要想能够进行 通信,需要满足一些必要的条件
唯一的标识:ip;用来标识自己的身份以及自己所处的地址
需要共同的语言;即协议
相应的端口号:每个主机上可以运行多个应用程序,使用端口号来决定与哪个应用进行通信
TCP/IP是目前世界上使用最为广泛的协议
TCP(Transmission Control Protocol)传输控制协议
IP:Internet Protocol 互联网协议
查看全部 -
该套课程重点知识
查看全部 -
UDP的两个编程主要类
查看全部 -
socket多客户端通信
查看全部 -
socket 通信模型和实现步骤
查看全部 -
socket过程中要考虑优先级,这影响到运行效率查看全部
-
多线程通信查看全部
举报
0/150
提交
取消