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

zmqjava

發布時間: 2022-04-22 01:02:25

1. 求《java面向對象程序設計》耿祥義 張躍平 清華大學出版 電子版 [email protected] 十分感謝

我也在找啊

2. 求一個「打字守城堡」游戲的 JAVA源代碼

importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.awt.Dimension;
importjava.awt.Font;
importjava.awt.Toolkit;
importjavax.sound.sampled.AudioFileFormat;
importjavax.sound.sampled.AudioSystem;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjava.awt.Rectangle;
importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JOptionPane;
importjavax.swing.JSlider;
importjavax.swing.JLabel;
importjavax.swing.SwingUtilities;
importjavax.swing.UIManager;
importjavax.swing.event.ChangeEvent;
importjavax.swing.event.ChangeListener;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.KeyAdapter;
importjava.awt.event.KeyEvent;
importjava.io.File;
importjava.util.Vector;
{
JPanelcontentPane;
JPaneljPanel1=newJPanel();
JButtonjButton1=newJButton();
JSliderjSlider1=newJSlider();
JLabeljLabel1=newJLabel();
JButtonjButton2=newJButton();
JLabeljLabel2=newJLabel();
intcount=1,rapidity=80;//count當前進行的個數,rapidity游標的位置
intzhengque=0,cuowu=0;
intrush[]={10,20,30};//游戲每關的個數可以自由添加.列{10,20,30,40,50}
intrush_count=0;//記錄關數
charlist[]={'A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y',
'Z','1','2','3','4','5','6','7','8','9'};//隨機出現的數字可以自由添加
Vectornumber=newVector();
Stringpaian="true";
AudioClipMusci_anjian,Music_shi,Music_chenggong;
publicFrame(){
try{
setDefaultCloseOperation(EXIT_ON_CLOSE);

//-----------------聲音文件---------------------
Musci_anjian=Applet.newAudioClip(newFile("sounds//anjian.wav")
.toURL());
Music_shi=Applet.newAudioClip(newFile("sounds//shi.wav")
.toURL());
Music_chenggong=Applet.newAudioClip(newFile(
"sounds//chenggong.wav").toURL());

//---------------------------------------
jbInit();
}catch(Exceptionexception){
exception.printStackTrace();
}
}
/**
*Componentinitialization.
*
*@throwsjava.lang.Exception
*/
privatevoidjbInit()throwsException{
contentPane=(JPanel)getContentPane();
contentPane.setLayout(null);
setSize(newDimension(588,530));
setTitle("FrameTitle");
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel1.setBounds(newRectangle(4,4,573,419));
jPanel1.setLayout(null);
jButton1.setBounds(newRectangle(277,442,89,31));
jButton1.setText("開始");
jButton1.addActionListener(newFrame1_jButton1_actionAdapter(this));
jSlider1.setBounds(newRectangle(83,448,164,21));
jSlider1.setMaximum(100);
jSlider1.setMinimum(1);
jSlider1.setValue(50);
jLabel1.setText("速度");
jLabel1.setBounds(newRectangle(35,451,39,18));
jButton2.setBounds(newRectangle(408,442,89,31));
jButton2.setText("結束");
jButton2.addActionListener(newFrame1_jButton2_actionAdapter(this));
jLabel2.setText("第一關:100個");
jLabel2.setBounds(newRectangle(414,473,171,21));
contentPane.add(jPanel1);
contentPane.add(jButton2);
contentPane.add(jButton1);
contentPane.add(jSlider1);
contentPane.add(jLabel1);
contentPane.add(jLabel2);
this.addKeyListener(newMyListener());
jButton1.addKeyListener(newMyListener());
jSlider1.addKeyListener(newMyListener());
jSlider1.addChangeListener(newChangeListener(){
publicvoidstateChanged(ChangeEvente){
rapidity=jSlider1.getValue();
}
});
}
publicvoidrun(){
number.clear();
zhengque=0;
cuowu=0;
paian="true";
while(count<=rush[rush_count]){
try{
Threadt=newThread(newTthread());
t.start();
count+=1;
Thread.sleep(1000+(int)(Math.random()*2000));//生產下組停頓時間
//最快1快.最慢2秒
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
while(true){//等待最後一個字元消失
if(number.size()==0){
break;
}
}
if(zhengque==0){//為了以後相除..如果全部正確或者錯誤就會出現錯誤.所以..
zhengque=1;
}
if(cuowu==0){
cuowu=1;
}
if(paian.equals("true")){//判斷是否是自然結束
if(zhengque/cuowu>=2){
JOptionPane.showMessageDialog(null,"恭喜你過關了");
rush_count+=1;//自動加1關
if(rush_count<rush.length){
if(rapidity>10){//當速度大於10的時候在-5提加速度.怕速度太快
rapidity-=5;//速度自動減10毫秒
jSlider1.setValue(rapidity);//選擇位置
}
Threadt=newThread(this);
t.start();
}else{
JOptionPane.showMessageDialog(null,"牛B...你通關了..");
rush_count=0;
count=0;
}
}else{
JOptionPane.showMessageDialog(null,"請再接再勵");
rush_count=0;
count=0;
}
}else{
rush_count=0;
count=0;
}
}
publicvoidjButton1_actionPerformed(ActionEvente){
Threadt=newThread(this);
t.start();
}
publicvoidjButton2_actionPerformed(ActionEvente){
count=rush[rush_count]+1;
paian="flase";
}
{
publicvoidrun(){
booleanfo=true;
intY=0,X=0;
JLabelshow=newJLabel();
show.setFont(newjava.awt.Font("宋體",Font.PLAIN,33));
jPanel1.add(show);
X=10+(int)(Math.random()*400);
Stringparameter=list[(int)(Math.random()*list.length)]+"";
Beanbean=newBean();
bean.setParameter(parameter);
bean.setShow(show);
number.add(bean);
show.setText(parameter);
while(fo){
//---------------------數字下移--------------------
show.setBounds(newRectangle(X,Y+=2,33,33));
try{
Thread.sleep(rapidity);
}catch(InterruptedExceptione){
e.printStackTrace();
}
if(Y>=419){
fo=false;
for(inti=number.size()-1;i>=0;i--){
Beanbn=((Bean)number.get(i));
if(parameter.equalsIgnoreCase(bn.getParameter())){
cuowu+=1;
jLabel2.setText("正確:"+zhengque+"個,錯誤:"+cuowu
+"個");
number.removeElementAt(i);
Music_shi.play();
break;
}
}
}
}
}
}
{
publicvoidkeyPressed(KeyEvente){
Stringuu=e.getKeyChar()+"";
for(inti=0;i<number.size();i++){
Beanbean=((Bean)number.get(i));
if(uu.equalsIgnoreCase(bean.getParameter())){
zhengque+=1;
number.removeElementAt(i);
bean.getShow().setVisible(false);
jLabel2.setText("正確:"+zhengque+"個,錯誤:"+cuowu+"個");
Music_chenggong.play();
break;
}
}
Musci_anjian.play();
}
}
publicstaticvoidmain(String[]args){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exceptionexception){
exception.printStackTrace();
}
Frameframe=newFrame();
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
DimensionframeSize=frame.getSize();
if(frameSize.height>screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width){
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,
(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
}
classFrame1_jButton2_{
privateFrameadaptee;
Frame1_jButton2_actionAdapter(Frameadaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
adaptee.jButton2_actionPerformed(e);
}
}
classFrame1_jButton1_{
privateFrameadaptee;
Frame1_jButton1_actionAdapter(Frameadaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
adaptee.jButton1_actionPerformed(e);
}
}
classBean{
Stringparameter=null;
JLabelshow=null;
publicJLabelgetShow(){
returnshow;
}
publicvoidsetShow(JLabelshow){
this.show=show;
}
publicStringgetParameter(){
returnparameter;
}
publicvoidsetParameter(Stringparameter){
this.parameter=parameter;
}
}

3. ZMQ JAVA使用經驗之 ZMQ簡介怎麼解決

ZMQ JAVA使用經驗之 ZMQ簡介怎麼解決:
ZMQ被稱為史上最快消息隊列,它處於會話層之上,應用層之下,使用後台非同步線程完成消息的接受和發送,完美的封裝了Socket API,大大簡化了編程人員的復雜度,被稱為史上最強大的消息中間件。ZMQ是用C語言編寫的,30s內完成消息的傳輸,能夠兼容多個平台,多種語言,可以使用多種方式實現N對N的Socket連接。本文僅以JAVA版本的ZMQ API為例,介紹ZMQ。
ZMQ與傳統的TCP Socket相比,具有以下優點:
1) ZMQ發送和接受的是具有固定長度的二進制對象,ZMQ的消息包最大254個位元組,前6個位元組是協議,然後是數據包。數據包由3個部分組成,第一個位元組是包的長度,第二個位元組是包的一些屬性,最後是包的內容。如果超過255個位元組(有一個位元組表示包屬性),則ZMQ會自動分包傳輸;而對於TCP Socket,是面向位元組流的連接,編程人員需要處理數據塊與數據塊之間的邊界問題,而ZMQ能夠保證每次用戶發送和接受的都是一個完整的數據塊;
2) 傳統的TCP Socket的連接是1對1的,可以認為「1個Socket=1個連接」,每一個線程獨立的維護一個Socket。但是ZMQ摒棄了這種1對1的模式,ZMQ的Socket可以很輕松的實現1對N,N對1和N對N的連接模式,一個ZMQ的Socket可以自動的維護一組連接,用戶無法操作這些連接,用戶只能操作套接字,而不是連接本身,所以說ZMQ的世界裡,連接是私有的。這里大家關心的一點是,一個Socket是如何識別來自多個Socket的連接的,這里以請求響應模式為例介紹ZMQ是如何實現一個Socket連接N個Socket的;
3)ZMQ使用非同步後台線程處理接受和發送請求,這意味著發送完消息,不可以立即釋放資源,消息什麼時候發送用戶是無法控制的,同時,ZMQ自動重連,這意味著用戶可以以任意順序加入到網路中,伺服器也可以隨時加入或者退出網路;
ZMQ之所以能夠在無狀態的網路中實現1對N的連接,關鍵在於信封的機制,信封里保存了應答目標的位置。ZMQ涉及到請求-響應模式的Socket一共有4種類型:

DEALER是一種負載均衡,它會將消息分發給已連接的節點,並使用公平隊列的機制處理接受到的消息。
REQ發送消息時會在消息頂部插入一個空幀,接受時會將空幀移去。其實REQ是建立在DEALER之上的,但REQ只有當消息發送並接受到回應後才能繼續運行。
ROUTER在收到消息時會在頂部添加一個信封,標記消息來源。發送時會通過該信封決定哪個節點可以獲取到該條消息。
REP在收到消息時會將第一個空幀之前的所有信息保存起來,將原始信息傳送給應用程序。在發送消息時,REP會用剛才保存的信息包裹應答消息。REP其實是建立在ROUTER之上的,但和REQ一樣,必須完成接受和發送這兩個動作後才能繼續。
在了解了4種類型的Socket之後,我們就不難理解ZMQ的信封機制了。ZMQ信封機制的核心是Router Socket,它的工作原理如下:
從ROUTER中讀取一條消息時,ZMQ會包上一層信封,上面註明了消息的來源。向ROUTER寫入一條消息時(包含信封),ZMQ會將信封拆開,並將消息遞送給相應的對象。當REQ Socket向ROUTER Socket發送一條請求後,REP會從ROUTER收到一條消息,消息格式如下:

第三幀是REP從應用程序收到的數據,第二幀是空幀,是REQ在發送ROUTER數據之前添加的,用來表示結束,第一幀即信封,是ROUTER添加的,主要用來記錄消息來源;整個數據包處理過程如下:

對於REQ Socket,可以在創建Socket的時候,為該Sock指定標示符,此時的Socket稱為持久Socket,沒有指定標示符的我們稱為瞬時Socket,ROUTER會自動為瞬時Socket生成一個標示符;

這樣REP返回包含信封的數據給ROUTER,ROUTER就可以根據信封上的標示符將該消息發送到對應的REQ上;
ZMQ使用注意事項:
ZMQ是在發送端緩存消息的,可以通過閾值控制消息的溢出;
ZMQ不可以線程之間共享Socket,否則會報org.zeromq.ZMQException: Operation cannot be accomplished in current state錯誤。
ZMQ一個進程只允許有一個Context,new Context(int arg) arg表示後台線程的數量;
ZMQ的Socket類有一個Linger參數,可以通過SetLinger設置,主要用於表示該Socket關閉以後,未發送成功的消息是否還保存,如果設置為-1表示該消息將永久保存(除非宕機,ZMQ是不持久化消息的),如果為0表示所有未發送成功的消息在Socker關閉以後都將立即清除,如果是一個正數,則表示該消息在Socket關閉後多少毫秒內被刪除;這個方法非常有用,尤其在控制發送失敗時,是否重發消息。

4. 同樣的java程序,在win2008正常,而在win2003則出現問題,是什麼原因

win2008是64位的。win2003是32位的。

5. linux下java開發如何使用jzmq

運行報錯找不到java.library.path是因為沒有找到java的lib庫路徑,建議你按照下面方法嘗試下:

1:首先你要在Linux裡面把jdk配置好,最好是找個1.6版本的,配置也就是下載好壓縮包,解壓了,然後把jdk的目錄配置到Linux的PATH環境變數里,具體方法,自己查資料;

2:安裝了jdk的話,那就再下載個Eclipse這個開發軟體吧,作為java的IDE開發工具,挺好使喚的;
3:把你的項目都加到Eclipse里,這次應該就不會找不到java.library.path。

6. c++後端怎麼和java前端進行通訊 採用zeromq

環境准備
1、 CXF組件:Java端用於發布WebService服務的開源組件,內部自帶jetty Web容器。
2、 Gsoap組件:C++端用戶訪問WebService服務的組件。使用的是gsoap-2.8。這兩個組件可以直接google,官網下載。
3、 Eclipse:Java開發IDE。
4、 VS 2010:C++開發IDE。
三、 Java服務端開發
Step1 開發Java服務介面
1、 新建Java項目,導入CXF lib目錄下的Jar包。
2、 定義WebService介面。
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface WSWebServiceIF
{
@WebMethod
public String helloWebService();

@WebMethod
public String helloWebService2(String param);

}

3、 實現WebService介面
import java.nio.charset.Charset;

public class WSWebService implements WSWebServiceIF
{
@Override
public String helloWebService()
{
return "Hello WS Webservice!";
}

@Override
public String helloWebService2(String param)
{
System.out.println("接收到輸入參數:" + param);
String str = "1212312abns返回值帶中文。";
return new String(str.getBytes(Charset.forName("UTF-8")));
}
}

7. ZeroMQ,在java中如何判斷隊列為不為空

你在隊列里拿一個值,拿出來的數據為null或者報錯就算隊列為空,你不知道解決您的問題了嗎

8. 如何解決 no jzmq in java.library.path

1. 確保zmq的各種library有安裝正確,檢查方法:查看/usr/local/lib,看裡面有沒有libjzmq.a, libjzmq.dylib, libzmq.a, libjzmq.dylib等
正確的安裝方法是:(1)安裝libzmq-master (2)安裝zeromq-3.2.4,注意版本最好選這個,試過最新版本會報錯 (3)安裝jzmq-master java binding
直接搜這些關鍵詞都能找到相應地github網頁或者官網,然後按步驟輸指令就行。

2.看看問題是不是出在java.library.path,打開 ~/.bash_profile, 加入 export LD_LIBRARY_PATH=/usr/local/lib. 或者直接在命令行里提供路徑,例如:
javac -classpath /usr/local/share/java/zmq.jar HelloWorldClient.java
java -classpath .:/usr/local/share/java/zmq.jar -Djava.library.path=/usr/local/lib HelloWorldClient

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371