当前位置: 首页 > wzjs >正文

网站建设服务费入seo排名优化是什么意思

网站建设服务费入,seo排名优化是什么意思,网站开发php未来发展,打开百度网站需求描述 服务器端 创建一个 TCP 服务器,监听本地的 9999 端口,支持多个客户端连接。维护一个音乐播放列表,每个音乐条目包含歌曲名称、歌手、时长等信息。能够处理客户端的以下请求: 添加音乐到播放列表:接收客户端发…

需求描述

  • 服务器端
    • 创建一个 TCP 服务器,监听本地的 9999 端口,支持多个客户端连接。
    • 维护一个音乐播放列表,每个音乐条目包含歌曲名称、歌手、时长等信息。
    • 能够处理客户端的以下请求:
      • 添加音乐到播放列表:接收客户端发送的 Music 对象,使用 ObjectInputStream 读取,并将其添加到播放列表中。
      • 删除音乐:接收客户端发送的歌曲名称,使用 ObjectInputStream 读取,从播放列表中删除对应歌曲。
      • 获取播放列表:将当前的播放列表封装成 MusicPlaylist 对象,使用 ObjectOutputStream 发送给客户端。
  • 客户端
    • 创建一个 TCP 客户端,连接到本地的 9999 端口。
    • 可以向服务器发送添加音乐请求,创建 Music 对象并使用 ObjectOutputStream 发送。
    • 可以向服务器发送删除音乐请求,将歌曲名称使用 ObjectOutputStream 发送。
    • 可以向服务器发送获取播放列表请求,接收服务器返回的 MusicPlaylist 对象,使用 ObjectInputStream 读取并显示。
数据描述
  • Music 类
    • String songName:歌曲名称。
    • String singer:歌手。
    • int duration:歌曲时长(秒)。
  • MusicPlaylist 类
    • ArrayList<Music> musicList:音乐播放列表。

 附加:修改歌单名字

Server和Client的Music,Data和MusicPlaylist类 

        music类

import java.io.Serializable;public class Music implements Serializable {private String songName;private String singer;private int duration;public Music(String songName, String singer, int duration) {this.songName = songName;this.singer = singer;this.duration = duration;}public String getSongName() {return songName;}public String getSinger() {return singer;}public int getDuration() {return duration;}public void setSongName(String songName) {this.songName=songName;}public void setSinger(String singer) {this.singer=singer;}public void setDuration(int duration) {this.duration=duration;}@Overridepublic String toString() {return "歌曲名称: " + songName + ", 歌手: " + singer + ", 时长: " + duration + " 秒";}
}

        MusicPlaylist类

import java.io.Serializable;
import java.util.ArrayList;public class MusicPlaylist implements Serializable {private ArrayList<Music> musicList;public MusicPlaylist() {this.musicList = new ArrayList<>();}public ArrayList<Music> getMusicList() {return musicList;}public void addMusic(Music music) {musicList.add(music);}public void removeMusic(String songName) {musicList.removeIf(music -> music.getSongName().equals(songName));}public void modifyMusic(String songModify, String songNew){for (Music music : musicList) {if (music.getSongName().equals(songModify)){music.setSongName(songNew);}}}
}

        Data类(Data类启到一个把用户操作封装的作用,便于数据的打包和传输,方便程序编写的使用)

import java.io.Serializable;public class Data implements Serializable {private String op;private String songName;private String songNew;private Music music;public Data() {}public Data(String op) {this.op=op;}public String getOp() {return op;}public void setOp(String op) {this.op=op;}public Music getMusic() {return music;}public void setMusic(Music music) {this.music=music;}public void setMusicName(String songName) {this.songName = songName;}public String getMusicName() {return songName;}public void setMusicNewName(String songNew) {this.songNew = songNew;}public String getMusicNewName() {return songNew;}
}

客户端ClientZJL:

import com.zb2.entity.Data;
import com.zb2.entity.Music;
import com.zb2.entity.MusicPlaylist;import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.ArrayList;public class ClientZJL {public static void main(String[] args) throws IOException, ClassNotFoundException {Socket socket = new Socket("127.0.0.1", 9999);ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());String opWhat;String songDelete;String songModify;String songNew;String msg;Data op = new Data();// 添加音乐===============================================Music music = new Music("青花瓷", "周杰伦", 300);opWhat = "添加";//包装Dataop.setOp(opWhat);op.setMusic(music);//发送Dataoos.writeObject(op);//接收系统发回的信息msg = (String) ois.readObject();System.out.println(msg);//修改音乐===============================================opWhat = "修改";songModify = "青花瓷";songNew = "七里香";//包装Dataop.setOp(opWhat);op.setMusicName(songModify);op.setMusicNewName(songNew);//发送Dataoos.writeObject(op);//接收系统发回的信息msg = (String) ois.readObject();System.out.println(msg);//删除音乐===============================================opWhat = "删除";songDelete = "青花瓷";//包装Dataop.setOp(opWhat);op.setMusicName(songDelete);//发送Dataoos.writeObject(op);//接收系统发回的信息msg = (String) ois.readObject();System.out.println(msg);// 获取播放列表===============================================opWhat = "查看歌单";//包装Dataop.setOp(opWhat);//发送Dataoos.writeObject(op);//接收系统发回的歌单对象MusicPlaylist playlist = (MusicPlaylist) ois.readObject();//将歌单对象转换为集合并打印ArrayList<Music> musicList = playlist.getMusicList();for (Music m : musicList) {System.out.println(m);}}
}

服务端Server:

        Server类

import com.zb2.entity.MusicPlaylist;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(9999);System.out.println("服务器启动 端口:" + 9999);MusicPlaylist playlist = new MusicPlaylist();while (true) {Socket socket=serverSocket.accept();ServerThread serverThread = new ServerThread(socket, playlist);serverThread.start();}}
}

        ServerThread类

import com.zb2.entity.Data;
import com.zb2.entity.MusicPlaylist;import java.io.*;
import java.net.Socket;public class ServerThread extends Thread {private Socket socket;private MusicPlaylist playlist;public ServerThread(Socket socket, MusicPlaylist playlist) {this.socket = socket;this.playlist = playlist;}@Overridepublic void run() {ObjectInputStream ois =null;ObjectOutputStream oos =null;try {ois=new ObjectInputStream(socket.getInputStream());oos=new ObjectOutputStream(socket.getOutputStream());Data op = new Data();op =(Data) ois.readObject();switch (op.getOp()) {case "添加":playlist.addMusic(op.getMusic());System.out.println("添加音乐: " + op.getMusic());oos.writeObject("添加成功!");break;case "删除":playlist.removeMusic(op.getMusicName());System.out.println("删除音乐: " + op.getMusicName());oos.writeObject("删除成功!");break;case "修改":playlist.modifyMusic(op.getMusicName(),op.getMusicNewName());System.out.println("修改音乐: " + op.getMusicName()+",为"+op.getMusicNewName());oos.writeObject("修改成功!");break;case "查看歌单":oos.writeObject(playlist);System.out.println("返回给客户端歌单");break;}} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally {try {oos.close();ois.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}
}

运行结果:

添加歌曲:

查看歌单:

删除歌曲(青花瓷):

再次查看歌单:

修改曲目(青花瓷->七里香):

再次查看歌单:


文章转载自:

http://JTFdQiag.jfjwz.cn
http://SkYm02qb.jfjwz.cn
http://1ZL2I4I4.jfjwz.cn
http://Ysmuhs31.jfjwz.cn
http://6mk5Kty1.jfjwz.cn
http://H285JycM.jfjwz.cn
http://uLNL5ylw.jfjwz.cn
http://GNEABhg5.jfjwz.cn
http://Jii0EW5q.jfjwz.cn
http://zr9YgLjN.jfjwz.cn
http://BmqGlU0u.jfjwz.cn
http://9z5ChRU8.jfjwz.cn
http://SmRSZ8Oe.jfjwz.cn
http://R11U4BKt.jfjwz.cn
http://01Wk6rrB.jfjwz.cn
http://UvdgNNuR.jfjwz.cn
http://32RxhZdk.jfjwz.cn
http://ZC6XkzAn.jfjwz.cn
http://FXYS5fh4.jfjwz.cn
http://87SxB8MD.jfjwz.cn
http://oFXcePI3.jfjwz.cn
http://nkasqWmH.jfjwz.cn
http://8LsY48Et.jfjwz.cn
http://eyypoMeS.jfjwz.cn
http://X3sQ4u6p.jfjwz.cn
http://uKwBP8iw.jfjwz.cn
http://X2m7xUVu.jfjwz.cn
http://9mYpEAKZ.jfjwz.cn
http://y63LAS1Z.jfjwz.cn
http://MEoDgO2W.jfjwz.cn
http://www.dtcms.com/wzjs/712787.html

相关文章:

  • 美食网站html模板化妆所有步骤
  • 微信 网站 织梦wordpress 分类标题
  • 做网站需要哪些素材网站设计怎么算间距
  • 制作网站上海百度最贵关键词排名
  • 网站运营外包方案上传wordpress后
  • 攀枝花市网站建设建立属于自己的网站
  • 烟台网站seo服务网站建设合同需要印花税
  • 外行怎么做网站宝贝详情页制作模板
  • 网站的后缀名怎么建设厦门小型网站建设
  • 广告建设网站建设wordpress自定义404页面模板
  • 室内设计软件下载网站大全设计院
  • 珠海品牌网站设计手机开发网站教程
  • 泛微 企业网站建设计划在百度做广告多少钱
  • 后台管理系统网站模板制作俄语网站
  • python 网站开发wordpress新建用户
  • 富阳网站建设网页制作首页
  • 网站展示程序网站如何做实名认证
  • 行业论坛网站网站开发费应该入什么科目
  • 做一网站要什么软件有哪些网页游戏电脑版
  • 郑州做网站哪个公司好跨境电商seo什么意思
  • 网店平台排名绍兴seo排名公司
  • 做影视网站怎么样不犯法做贸易的都有什么网站
  • 制作一个企业网站多少钱网页游戏网站火
  • 做学校后台网站用什么浏览器ip代理免费
  • 昌平网站开发长安网站建设
  • 焦作北京网站建设免费app电视剧软件
  • seo短视频网页入口引流在线观看网站做网站优化的协议书
  • 广州市天河区门户网站网站内容上传
  • 筹划建设协会网站的方案新品怎么刷关键词
  • 建站至尊中国人才网