當前位置:首頁 » 編程語言 » rtpjava

rtpjava

發布時間: 2022-05-07 21:23:02

㈠ C/S架構,伺服器為LINUX,用到的協議sip,RTST,RTP,開發語言為java,C#,C++,哪款性能測試工具比較適合

RTST:是RTSP吧,RTSP(Real Time Streaming Protocol)是用來控制聲音或影像的多媒體串流協議

㈡ java rtpstream怎麼用

1.出現Local Data AddressDoes not belong to any of this hosts local interfaces錯誤:
主要問題是發送視頻和音頻的程序需要在伺服器上運行,你可以選擇Win2000 Server 或者Win2003 Server,問題就解決了。
2.傳輸聲音和視頻的方法如下:
a.傳輸聲音或者視頻文件
編譯完AVTransmit2.java後,再命令提示符中輸入命令:java AVTransmit2 file:test.wav 224.224.123.123 22222(注意文件的類型是.wav 或者.mov 、.mpg的文件,不可以是.mp3、.rmvb等其他不支持的文件。傳輸支持文件格式有限,我也沒有辦法,應該在添加相關的插件就行了,希望大家提供幫助),其中test.wav即傳輸的文件名,224.224.123.123為多播地址,22222為埠號.
接收方法:編譯完AVReceive.java後,在命令提示符中輸入命令:java AVReceive 224.224.123.123/22222即可接受到聲音文件
b.傳輸麥克風的音頻,在傳輸之前先檢查電腦錄音控制的選項是否為麥克風.(步驟:打開桌面任務欄上的音量控制,選擇選項---->屬性----->調節音量選擇錄音,之後在下面的音量控制屬性中選中麥克風。單擊確定。接著跳到錄音控制,選擇麥克風就行了)。使用的命令是:java AVTransmit2 dsound:// 224.224.123.123 22222,此時就開始傳輸聲音了。
接收方法同上
c.傳輸攝相頭視頻,使用的命令為:java AVTransmit2 vfw://0 224.224.123.123 22222
接收方法同上
d.關於廣播、組播和單播
廣播:對於區域網廣播你可以使用廣播的地址,如你的子網掩碼是255.255.225.0,即C類的默認子網掩碼,你的廣播地址可以是192.168.3.255。(註:我的區域網ip地址分配為192.168.3.X)。如子網掩碼不同,你可以參照相關的網路常識自己推算。
接收時也使用多播地址來接受,假如發送方的機器地址為:192.168.3.46。發送時在發送放的機器上運行java AVTransmit2 file:test.wav 192.168.3.255 22222,接收時使用java AVReceive2 224.224.123.123 22222。才能完成接收.這和網上的說法不同,埠號不要填錯,地址任意。按網上的說法,使用的接收地址應為為192.168.3.46,可是我沒有成功,總是出現Local Data AddressDoes not belong to any of this hosts local interfaces的錯誤,而使用多播地址反而成功了。具體的參數我就不多介紹了,有問題可以給我留言。
組播:使用組播地址發送,組播地址接收即可
單播:假如你只想給某台機子發送,那麼就在發送方輸入命令,如:java AVTransmit2 file:test.wav 192.168.3.47 22222,這時你只會將聲音流文件發送給47號計算機。而接受時還是使用多播地址,如java AVReceive2 224.224.123.123 22222。這是就聽到聲音了。
總之,使用RTP傳輸,在接受時都在使用多播地址,在發送時根據情況而定,至於ttl你可以不去管它。不只大家是怎麼實現的,反正網上的資料讓我變的很失望,真正的成功源於實踐。下面摘取一段讓大家欣賞(盡信書則不如無書)
網上摘取:
Transmitting Audio and Video over RTP
The AVTransmit2 class is very similar to the VideoTransmit, but uses RTP managers
to send the video and audio streams.
Since the media tracks are transmitted in multiple sessions, you'll need to
use one Player per track on the receive side. Using JMStudio, you can
start multiple Players from the "File" menu using the "New Window"
item. Then either:
use the "Open URL..." item to open one RTP session per track. The URL to use is:

rtp://<sourceIP>:<port>/media
Where <sourceIP> is the IP address of the RTP session and the port
number is the same one that is used on the transmitting side.
OR

Open RTP session and specify <sourcIP> and <port>

How to run this sample
1. Run AVTransmit2 with the required 3 command line parameters
For example, we can use any of the following:
- java AVTransmit2 file:clips/clip01mpg.mpg 224.112.112.112 22222

2. To receive the transmission on the client side use JMStudio:
- use open RTP session and specify group: 224.112.112.112 & port: 22222
AND use FILE -> New Window and open RTP sesssion with port 22224.

OR
- use open URL and specify: rtp://224.112.112.112:22222/video
AND use FILE -> New Window and open URL with 22224/audio

Notes:

You should run 1. then 2., otherwise AVTransmit2 will find the port number used.
You can also use the program to send only audio or video as follows:

- java AVTransmit2 javasound://0 224.112.112.112 22222 (audio only)
- java AVTransmit2 vfw://0 224.112.112.112 22222 (video only)
In such case create only one instance of JMStudio.

Use Unicast:

- java AVTransmit2 file:clip01.mpg 128.82.4.7 22222
Where 128.82.4.7 is the receicver address.
If the sender address is 128.82.4.9 it will use port 22222 as well
to send out data. In this case the receiver (e.g., JMStudio)
should specify the sender as: 128.82.4.9 22222.
Therefore to use unicast you should have two machines since
you can not use the same port for both sender and receiver.
Receiving Audio and Video using RTP
AVReceive2 uses the RTPManager API to receive RTP transmissions.
AVReceive2 performs the following tasks:
Open one RTP session per session address given.
Listen for the NewReceiveStreamEvent from the ReceiveStreamListener.
Create a JMF Player for each stream received for playback.
This sample program can be used in conjunction with JMStudio,
the AVTransmit2 sample or any other RTP compliant transmitter.
The IP address should be the address of the computer which transmits the data; or the multicast address if multicast is being used for the transmission.
The ports should be the same as what's being used by the transmitter.
How to run this sample
1. Run AVTransmit2 with the required 3 command line parameters
For example:
- java AVTransmit2 file:clips/clip01mpg.mpg 224.112.112.112 1234
2. Run AVReceive2 and specify the RTP session addresses to receive from.
For example:
- java AVReceive2 224.112.112.112/1234 224.112.112.112/1236
to simultaneously receive 2 different RTP sessions (video and audio).
Note: because of port reuse, it must run in this order, 1 then 2.

㈢ java里有沒有播放音樂的函數

JMF就是最簡單的方法,你是做播放器的話,那就最合適不過了,JMF封裝的非常好,用戶介面簡單易用,比用別的方法都簡單。我原來也專門看過。官方的JMF介紹文檔寫的很通俗易懂,這個框架我覺得重點是java的RTP協議,可以用java開發遠程會議之類的東西,播放只是它最基本的功能而已,所以你用的話只看看那些基本的東西就夠了。java的基本類庫里也有sound包,但是沒有音頻知識這個東西估計你夠強能看懂,如果你單純搞一個播放器,而非處理音頻,就用JMF就可以

㈣ audiocapture在java哪個包中

//java的JDK中並沒有此類,另外,幫你找了一下這個類的源代碼:
//你也可以整包下載,下載地址:
//http://www.codeforge.com/read/3843/AudioCapture.java__html
//以下是部分代碼示例:
{
RTPTransmitrtpTransmit=null;//RTP傳輸類對象

LabellabelEncoding=newLabel();
ChoicechoiceEncoding=newChoice();//編碼方法下拉列表框
LabellabelSampleRate=newLabel();
ChoicechoiceSampleRate=newChoice();//采樣率下拉列表框
LabellabelBits=newLabel();
=newCheckboxGroup();
Checkboxcheckbox8Bit=newCheckbox();//每個樣本的編碼位數單選按鈕
Checkboxcheckbox16Bit=newCheckbox();
LabellabelChannels=newLabel();
=newCheckboxGroup();
CheckboxcheckboxMono=newCheckbox();//通道數單選按鈕
CheckboxcheckboxStereo=newCheckbox();
JLabeljLabel1=newJLabel();

LabellabelIP=newLabel();
TextFieldtextIPAdd1=newTextField();//IP地址編輯框
TextFieldtextIPAdd4=newTextField();
TextFieldtextIPAdd3=newTextField();
TextFieldtextIPAdd2=newTextField();
LabellabelPort=newLabel();
TextFieldtextPort=newTextField();//埠號編輯框
JLabeljLabel2=newJLabel();

ButtonbuttonCaptureTransmit=newButton();
ButtonbuttonStop=newButton();

//設置界面和添加事件的監聽
privatevoidjbInit()throwsException{
this.setLayout(null);
this.setBackground(Color.lightGray);

labelEncoding.setText("Encoding:");
labelEncoding.setBounds(newRectangle(46,50,80,20));
choiceEncoding.setBounds(newRectangle(152,50,180,20));
choiceEncoding.add("DVI/RTP");
choiceEncoding.add("G723/RTP");
choiceEncoding.add("GSM/RTP");
choiceEncoding.add("ULAW/RTP");
choiceEncoding.add("MPEGAUDIO/RTP");
choiceEncoding.select(0);
choiceEncoding.addItemListener(newjava.awt.event.ItemListener(){
publicvoiditemStateChanged(ItemEvente){
choiceEncoding_itemStateChanged(e);
}
});

labelSampleRate.setText("SampleRate:");
labelSampleRate.setBounds(newRectangle(46,80,80,20));
choiceSampleRate.setBounds(newRectangle(152,80,180,20));
choiceSampleRate.add("22050.0");
choiceSampleRate.add("11025.0");
choiceSampleRate.add("8000.0");
choiceSampleRate.select(0);

㈤ java 如何發送 RTP/RTSP協議 具體怎麼實現的

首先搜索有沒有RTP/RTSP協議現成的包可用,沒有那麼你就要去讀協議白皮書了。

然後按照協議白皮書的格式,編寫通信協議。
最後寫出的東西好不好用就看你的水平了。

㈥ 求java聲音代碼,可以播mp3的謝謝了!

package baseitem;

import java.util.*;
import java.net.*;
import java.lang.reflect.Method;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

import javax.media.*;
import javax.media.util.*;
import javax.media.format.*;
import javax.media.control.*;
import javax.media.protocol.*;
import javax.media.bean.playerbean.*;
import javax.media.rtp.*;
import javax.media.rtp.event.*;

import javax.swing.border.*;
public class MediaPlayer extends JPanel implements ControllerListener{

//定義界面組件
JMenuBar mainMenu= new JMenuBar();

JMenu fileMenu = new JMenu("文件");
JMenu playMenu = new JMenu("播放");
JMenu helpMenu = new JMenu("幫助");

JMenuItem openMenuItem= new JMenuItem("打開");
JMenuItem exitMenuItem = new JMenuItem("退出");
JCheckBoxMenuItem loopMenuItem= new JCheckBoxMenuItem("循環");
JMenuItem aboutMenuItem = new JMenuItem("關於");

JLabel status = new JLabel("歡迎使用視頻播放系統");
JPanel mediaPanel = new JPanel();

Player player;
Component visualcom, controlcom;
boolean first = true, loop = false;
String currentDirectory="d:/music";//記錄所選媒體文件位置

JInternalFrame min;
public MediaPlayer(JInternalFrame mi){
min=mi;
setLayout(new BorderLayout());

setBackground(Color.lightGray);
setLocale(new java.util.Locale("zh", "CN", ""));

mediaPanel.setToolTipText("視頻窗口");
mediaPanel.setVerifyInputWhenFocusTarget(true);
mediaPanel.setLayout(new BorderLayout());

status.setToolTipText("狀態欄");
mainMenu.setToolTipText("菜單欄");

fileMenu.add(openMenuItem);
openMenuItem.addActionListener(new OpenFile(this));
fileMenu.add(exitMenuItem);
exitMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
min.dispose ();
player.stop();
return;
}
});
playMenu.add(loopMenuItem);
loopMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
loop = !loop;
}
});
helpMenu.add(aboutMenuItem);
aboutMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//顯示"關於"窗口
About dlg = new About();

Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.setVisible(true);
}
});
mainMenu.add(fileMenu);
mainMenu.add(playMenu);
mainMenu.add(helpMenu);

status.setBorder(BorderFactory.createLoweredBevelBorder());
status.setOpaque(true);
status.setIcon(new ImageIcon(baseitem.MediaPlayer.class.getResource("logo.png")));

add(mainMenu,BorderLayout.NORTH);
add(mediaPanel, BorderLayout.CENTER);
add(status, BorderLayout.SOUTH);

}

public void controllerUpdate (ControllerEvent e){
// 調用player.close()方法時ControllerClosedEvent事件發生
// 如果存在視覺組件,則該組件件應該拆除(為一致起見,
// 我們對控制面板組件也執行同樣的操作)
if(e instanceof ControllerClosedEvent){
if(visualcom != null){
mediaPanel.remove(visualcom);
visualcom = null;
}
if(controlcom != null){
mediaPanel.remove(controlcom);
controlcom = null;
}
return;
}

//如播放結束則EndOfMediaEvent事件發生,檢查是否為循環播放
//如是則調用播放器start()方法繼續播放
if(e instanceof EndOfMediaEvent){
if(loop){
player.setMediaTime(new Time(0));
player.start();
}
return;
}
if(e instanceof PrefetchCompleteEvent){
player.start();
return;
}
if(e instanceof RealizeCompleteEvent){
visualcom = player.getVisualComponent();
if(visualcom != null)
mediaPanel.add(visualcom, BorderLayout.CENTER);
controlcom = player.getControlPanelComponent();
if(controlcom != null)
mediaPanel.add(controlcom, BorderLayout.SOUTH);
}
min.pack();
}

//用於處理"打開"菜單項的類
class OpenFile implements ActionListener{
MediaPlayer mp;
public OpenFile(MediaPlayer mp){
this.mp=mp;
}
public void actionPerformed(ActionEvent e) {
//構造文件選擇組件實例並設置其屬性
JFileChooser fd=new JFileChooser();
fd.setSelectedFile(new File(currentDirectory));
fd.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result=fd.showOpenDialog(min);

// 如果用戶放棄選擇文件,則返回
if(result==JFileChooser.CANCEL_OPTION)
return;
currentDirectory = fd.getSelectedFile().toString();
if (player != null)
player.close();
try {
player = Manager.createPlayer(new MediaLocator("file:"+currentDirectory));
}
catch (java.io.IOException e2) {
System.out.println(e2);
return;
}
catch (NoPlayerException e2) {
System.out.println("不能找到播放器.");
return;
}
if (player == null) {
System.out.println("無法創建播放器.");
return;
}

first = false;
min.setTitle("播放文件位置 " + currentDirectory);

//為播放組件注冊監聽器
player.addControllerListener (mp);
player.prefetch();
}
}
}

㈦ JAVA下如何實現語音通信的功能 新手求教 謝謝

我做過SIP的開發.sip是一種類似http的協議,比H323簡單多了.特別適合JAVA開發.

准備工具:java環境,開發工具eclipse等,測試工具ethereal必要的.

SIP:會話初始化協議(Session Initiation Protocol)
會話初始化協議(SIP)是一種應用層控制協議,它可用來創建、修改或終止多媒體會話,如網際網路電話呼叫。 SIP 能夠邀請參與者加入已存在的會話,如組播會議。現有的會話中可以添加或刪除媒體。 SIP 支持名稱映射和重定向服務,其支持用戶移動性。不管用戶網路位置在哪,用戶只需維持單一外部可視標識符。

SIP 在五個方面支持創建和終止多媒體通信:

用戶定位:決定用於通信的終端系統的確定;
用戶可用性:決定被叫方是否願意加入通信;
用戶能力:媒體和媒體參數的確定;
呼叫建立:「響鈴「,主叫方和被叫方的會話參數的建立;
呼叫管理:包括傳輸和終止會話、修改呼叫參數和調用服務。
SIP 可以結合其它 IETF 協議來建立完善的多媒體結構,如提供實時數據傳輸和服務質量(QOS)反饋的實時傳輸協議(RTP)、提供流媒體發送控制的實時流協議(RTSP)、為公用交換電話網路(PSTN)提供網關控制的媒體網關控制協議(MEGACO),以及描述多媒體會話的會話描述協議(SDP)。因此, SIP 需要與其它協議協同作用來為用戶提供完善的服務。然而 SIP 的基本功能和操作並不依賴於這些協議。

SIP 提供了一組安全服務,包括防止拒絕服務攻擊、認證(用戶對用戶和代理對用戶)、完整性保護和加密及隱私服務。

SIP 同時支持 IPv4 and IPv6 。關於網際網路電話會話, SIP 做如下工作:

通過 SIP 地址識別主叫方和被叫方。當建立一個 SIP 呼叫時,主叫方首先定位適合的伺服器,然後發出一個 SIP 請求。最通常的 SIP 行為是邀請。 SIP 請求會被代理重定向或者觸發一系列的新 SIP 請求,而不是直接到達目的被叫方。用戶可以通過 SIP 伺服器注冊他們的位置。 SIP 地址 (URL) 可以嵌入到網頁中,因此只要點擊一下就可以和對方建立呼叫會話。

㈧ java 控制列印機實現列印 String【】aa 字元串的數據

/**
* 這是一部分代碼
*/
package com.mqney.barcode.tsc.templet;

import ookj.ui.pub.messagedailog.MessageDailog;

import com.mqney.barcode.tsc.TscBarcode;
import com.mqney.barcode.tsc.TscClearbuffer;
import com.mqney.barcode.tsc.TscCloseport;
//import com.mqney.barcode.tsc.TscSendcommand;
import com.mqney.barcode.tsc.TscWindowsfont;
import com.mqney.barcode.tsc.impl.TscBarcodeDefault;
import com.mqney.barcode.tsc.impl.TscOpenportDefault;
import com.mqney.barcode.tsc.impl.TscPrintlabelDefault;
import com.mqney.barcode.tsc.impl.TscSetupDefault;
import com.mqney.barcode.tsc.impl.TscWindowsfontDefault;
import com.mqney.barcode.util.ReadTscProperties;
import com.mqney.barcode.util.RunTscDllFunction;
import com.mqney.barcode.util.TextToParagraph;

/**
* @author pinkfloyd
*
*/
public class SonqaoReportPrint {
public void init(SonqaoReportBean[] srbs){
try{if(srbs==null||srbs.length==0){
return;
}
int num = srbs.length;

/**
* DIRECTION可以,RSS、CIRCLE不行。
*/
// TscSendcommand ts = new TscSendcommand("DIRECTION 1,1");
// TscSendcommand ts = new TscSendcommand("RSS 300,300,\"UCC128CCC\",270,2,2,25,\"1234567890|ABCDEFG\"");
// TscSendcommand ts = new TscSendcommand("CIRCLE 40,16,10,2");
// rdf.RunDllFunctionTSC(ts);
for(int i=0; i<num; i++){
SonqaoReportBean srb = srbs[i];
if(srb==null){
continue;
}
RunTscDllFunction rdf = new RunTscDllFunction();
TextToParagraph ttp = new TextToParagraph();
MessageDailog md = new MessageDailog();
TscOpenportDefault tod = new TscOpenportDefault();
ReadTscProperties rtp = new ReadTscProperties();
tod.setPrinter(rtp.getValue(ReadTscProperties.TSC_REPORT_PATH));
rdf.RunDllFunctionTSC(tod);

TscSetupDefault tsd = new TscSetupDefault();
tsd.setLabelWidth("100");
tsd.setLabelHeight("70");
rdf.RunDllFunctionTSC(tsd);
TscClearbuffer tcb = new TscClearbuffer();
rdf.RunDllFunctionTSC(tcb);
TscWindowsfontDefault twd;
twd = new TscWindowsfontDefault(40,16,36,"單位:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);
twd = new TscWindowsfontDefault(40,88,36,"姓名:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);
twd = new TscWindowsfontDefault(40,152,36,"信息:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);
twd = new TscWindowsfontDefault(40,216,36,"部門:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);

String[] s0 = ttp.textToParaVoid(srb.getGongsi(), 40);
if(s0==null||s0.length==0){
md.showWarningMessage("getGongsi");
}else{
int num0 = s0.length;
for(int j=0; j<num0; j++){
twd = new TscWindowsfontDefault(140,16+(j*32),32,s0[j]);
// twd.setFontUnderline(TscWindowsfont.FONT_UNDERLINE_WITH);
rdf.RunDllFunctionTSC(twd);
}
}

twd = new TscWindowsfontDefault(140,80,40,srb.getXingming());
rdf.RunDllFunctionTSC(twd);

String[] s2 = ttp.textToParaVoid(srb.getXinxi(), 40);
if(s2==null||s2.length==0){
md.showWarningMessage("getXinxi");
}else{
int num2 = s2.length;
for(int j=0; j<num2; j++){
twd = new TscWindowsfontDefault(140,152+j*32,32,s2[j]);
// twd.setFontUnderline(TscWindowsfont.FONT_UNDERLINE_WITH);
rdf.RunDllFunctionTSC(twd);
}
}

String[] s3 = ttp.textToParaVoid(srb.getBumen(), 40);
if(s3==null||s3.length==0){
md.showWarningMessage("getBumen");
}else{
int num3 = s3.length;
for(int j=0; j<num3; j++){
twd = new TscWindowsfontDefault(140,216+j*32,32,s3[j]);
// twd.setFontUnderline(TscWindowsfont.FONT_UNDERLINE_WITH);
rdf.RunDllFunctionTSC(twd);
}
}

TscBarcodeDefault tbd;
tbd = new TscBarcodeDefault("216","360","48",srb.getBarcode());
tbd.setNarrowBarRatioX(TscBarcode.NARROW_BARRATIO_3);
tbd.setNarrowBarRatioY(TscBarcode.NARROW_BARRATIO_3);
rdf.RunDllFunctionTSC(tbd);

twd = new TscWindowsfontDefault(160,500,32,srb.getSonqao());
rdf.RunDllFunctionTSC(twd);

TscPrintlabelDefault tpd = new TscPrintlabelDefault();
tpd.setLabelCopies("1");
tpd.setLabelSets("1");
rdf.RunDllFunctionTSC(tpd);
TscCloseport tc = new TscCloseport();
rdf.RunDllFunctionTSC(tc);
}

}catch(Exception e){
e.printStackTrace();
}
}
}

㈨ JAVA怎麼使用RTP發送數據

Socket 來發送
RTP 用的是是UDP協議

㈩ 怎麼用java實現一個簡單的播放器

用java實現播放器 主要用到java里的媒體框架,即JMF, JMF實際上是Java的一個類包。JMF 2.1.1技術提供了先進的媒體處理能力,從而擴展了Java平台的功能。這些功能包括:媒體捕獲、壓縮、流轉、回放,以及對各種主要媒體形式和編碼的支 持,如M-JPEG、H.263、MP3、RTP/RTSP (實時傳送協議和實時流轉協議)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format (RMF)等。JMF 2.1.1還支持廣受歡迎的媒體類型,如Quicktime、Microsofts AVI和MPEG-1等。此外,JMF 2.1.1軟體中包括了一個開放的媒體架構,可使開發人員靈活採用各種媒體回放、捕獲組件,或採用他們自己的定製的內插組件。 我當初也做過類似的東西(本科實習時),給你個具體教程鏈接吧: http://hi..com/samxx8/blog/item/90532ba4d13fcdf69052ee5c.html

熱點內容
android敏捷開發 發布:2025-05-11 11:56:49 瀏覽:77
腳本pon 發布:2025-05-11 11:52:27 瀏覽:824
ct5推薦哪個配置 發布:2025-05-11 11:47:45 瀏覽:741
領購未上傳發票 發布:2025-05-11 11:43:27 瀏覽:716
查看華為雲伺服器的ip地址 發布:2025-05-11 11:24:44 瀏覽:235
長沙銀行密碼多少 發布:2025-05-11 11:24:38 瀏覽:671
緩存手機視頻合並軟體哪個好 發布:2025-05-11 11:22:30 瀏覽:698
伺服器c盤怎麼清除 發布:2025-05-11 11:16:33 瀏覽:39
動態估演算法 發布:2025-05-11 11:06:19 瀏覽:923
sql2008使用教程 發布:2025-05-11 10:53:16 瀏覽:315