Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
44c08eb
[COMMIT] QoS3 - STEP 1
enurinm Jun 16, 2020
3b665a5
[COMMIT] QoS 3 receiver
enurinm Jul 6, 2020
238f5f8
[COMMIT] WIN CLIENT nMinNumWaitedEvents
enurinm Jul 20, 2020
30ec7fa
[COMMIT] 세션에 데이터 저장
enurinm Jul 21, 2020
6631489
[COMMIT] PUBCHK받았을 때 unack PUBLISH list에서 해당 PUBLISH 패킷 삭제
Jul 28, 2020
593ead9
[COMMIT] QOS3 ver.3 (-multiple subscriber packet id problem exists)
enurinm Oct 7, 2020
38a5146
[COMMIT] PUBCOMP minNumWaitedEvents
enurinm Oct 12, 2020
6088329
[COMMIT]add MQTT receiver/sender
enurinm Oct 15, 2020
b5eb441
[COMMIT] MQTT QOS3 TESTCODE 중간세이브
enurinm Nov 17, 2020
ca619b1
[COMMIT] modify PUBREL list
enurinm Nov 26, 2020
3cc27ee
[COMMIT] delete unnecessary println
enurinm Dec 16, 2020
22e0a4b
[COMMT] modify test2
enurinm Dec 16, 2020
6f097f4
[COMMIT]modify timeTest1
enurinm Dec 16, 2020
7ca7190
[COMMIT]modify subTest
enurinm Dec 16, 2020
cfec5b4
[COMMIT] Brk test modified
enurinm Dec 16, 2020
2d1029e
[COMMIT] modify client app
enurinm Dec 16, 2020
fe075b2
[COMMIT] test end
enurinm Dec 22, 2020
2c320cc
[COMMIT] async QoS 3 added
enurinm Apr 13, 2021
58597c6
[COMMIT] ASYNC QOS3
enurinm Apr 28, 2021
105fe49
[COMMIT] QoS3 pub modified
enurinm Apr 29, 2021
3401fdd
[COMMIT] QoS3 subbrk modified / testcode
enurinm Apr 29, 2021
056e315
[COMMIT] RENAIMING
enurinm Jun 1, 2021
ffe6e60
[COMMIT TEST]
enurinm Jun 21, 2021
887af2b
[ERRSOLVING] qos3 time test 3
enurinm Jul 14, 2021
681403b
Merge branch 'master' of https://github.com/enurinm/CM.git
enurinm Jul 14, 2021
22ac176
[COMMIT] time test publisher modified
enurinm Jul 14, 2021
58a2362
[ERRSLVING] ADD LISTS
enurinm Jul 19, 2021
46afcce
[COMMIT] TEST CODE MODIFIED
enurinm Jul 20, 2021
121ac41
[COMMIT] func name err solv
Jul 23, 2021
9b3b252
[ERRSLVING]
Jul 23, 2021
64c17e0
[COMMIT] TEST CODE
enurinm Jul 25, 2021
ee34f52
[for test 3]
enurinm Jul 25, 2021
264645e
[COMMIT] TESTING...
Jul 26, 2021
0c236b0
[COMMIT] MODIFYING...
enurinm Aug 1, 2021
ab96e40
[ERRSLVING]
enurinm Aug 4, 2021
165162c
[COMMIT] ERR SOLVING
enurinm Aug 8, 2021
714096f
[COMMIT] testcode3
enurinm Aug 18, 2021
2d66238
[COMMIT] TIME TEST CODE
enurinm Aug 24, 2021
180540c
[authtest]
enurinm Aug 25, 2021
e64273e
[COMMIT] test3 err slv
enurinm Oct 11, 2021
95ae3e8
[COMMIT] err slv
enurinm Oct 11, 2021
5fcd094
[change]
enurinm Oct 11, 2021
e794cd8
[change]
enurinm Oct 11, 2021
f88e8dc
Merge branch 'master' of https://github.com/enurinm/CM.git
enurinm Oct 11, 2021
9fca203
publisher
enurinm Apr 10, 2022
f9257ff
FIN
enurinm Apr 10, 2022
7275f81
[COMMIT] .
enurinm Apr 24, 2022
a607487
1차
enurinm May 6, 2022
0d7ca55
[COMMIT].
enurinm May 6, 2022
e5e83ac
.
enurinm May 6, 2022
d490471
err slv
enurinm May 6, 2022
b3394cd
err slv
enurinm May 6, 2022
52b4ecc
[pub complete]
enurinm May 15, 2022
2788beb
[COMMIT] 소스정리
enurinm Jul 7, 2022
f2067bf
delete local setting
enurinm Jul 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions CM/.classpath
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="mysql-connector-java-5.1.31-bin.jar"/>
<classpathentry kind="lib" path="commons-math3-3.5.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/zulu1.8.0_181">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="mysql-connector-java-5.1.31-bin.jar"/>
<classpathentry kind="lib" path="commons-math3-3.5.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/zulu1.8.0_181">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
11 changes: 0 additions & 11 deletions CM/.settings/org.eclipse.jdt.core.prefs

This file was deleted.

772 changes: 772 additions & 0 deletions CM/mqttqos3.ucls

Large diffs are not rendered by default.

43 changes: 37 additions & 6 deletions CM/src/CMClientApp.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
import java.io.*;
import java.io.BufferedReader;
import java.io.Console;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.DatagramChannel;
import java.nio.channels.SelectableChannel;
import java.nio.channels.SocketChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;

import javax.swing.JOptionPane;

Expand Down Expand Up @@ -37,7 +51,6 @@
import kr.ac.konkuk.ccslab.cm.manager.CMFileTransferManager;
import kr.ac.konkuk.ccslab.cm.manager.CMMqttManager;
import kr.ac.konkuk.ccslab.cm.stub.CMClientStub;
import kr.ac.konkuk.ccslab.cm.util.CMUtil;


public class CMClientApp {
Expand Down Expand Up @@ -3143,6 +3156,8 @@ public void testMqttPublish()
byte qos = (byte)0;
boolean bDupFlag = false;
boolean bRetainFlag = false;
String strReceiver = "";
int nMinNumWaitedEvents = 1;

boolean bDetail = false;
System.out.print("Need all parameters? (\"y\" or \"n\", Enter for no): ");
Expand All @@ -3157,14 +3172,25 @@ public void testMqttPublish()

if(bDetail)
{
System.out.print("QoS (0,1, or 2, Enter for 0): ");
System.out.print("QoS (0,1,2 or 3, Enter for 0): ");
String strQoS = m_scan.nextLine().trim();
if(strQoS.contentEquals("1") || strQoS.contentEquals("2"))
qos = Byte.parseByte(strQoS);
else if(strQoS.contentEquals("3")) {
qos = Byte.parseByte(strQoS);
System.out.print("Appointed receiver (Enter for non-receiver): ");
strReceiver=m_scan.nextLine().trim();
System.out.print("Minimum waited events (Enter for 1): ");
String strMinNumWaitedEvents = m_scan.nextLine().trim();
if(!strMinNumWaitedEvents.isEmpty()) {
nMinNumWaitedEvents = Integer.parseInt(strMinNumWaitedEvents);
}
}
else if(!strQoS.contentEquals("0") && !strQoS.isEmpty())
{
System.err.println("Wrong QoS! QoS is set to 0!");
}

System.out.print("DUP Flag (\"true\" or \"false\", Enter for false): ");
String strDupFlag = m_scan.nextLine().trim();
if(strDupFlag.contentEquals("true"))
Expand All @@ -3184,7 +3210,11 @@ else if(!strQoS.contentEquals("0") && !strQoS.isEmpty())

if(bDetail)
{
mqttManager.publish(strTopic, strMessage, qos, bDupFlag, bRetainFlag);
if(qos==3) {
mqttManager.publish(strTopic, strMessage, qos, bDupFlag, bRetainFlag, strReceiver, nMinNumWaitedEvents);
}else {
mqttManager.publish(strTopic, strMessage, qos, bDupFlag, bRetainFlag);
}
}
else
{
Expand All @@ -3202,8 +3232,9 @@ public void testMqttSubscribe()
System.out.print("Topic Filter: ");
strTopicFilter = m_scan.nextLine().trim();
String strQoS = null;
System.out.print("QoS (0,1,2 or 3, Enter for 0): ");
strQoS = m_scan.nextLine().trim();
if(strQoS.contentEquals("1") || strQoS.contentEquals("2"))
if(strQoS.contentEquals("1") || strQoS.contentEquals("2") || strQoS.contentEquals("3"))
qos = Byte.parseByte(strQoS);
else if(!strQoS.contentEquals("0") && !strQoS.isEmpty())
{
Expand Down
69 changes: 59 additions & 10 deletions CM/src/CMWinClient.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Desktop;
import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
Expand All @@ -13,11 +22,36 @@
import java.nio.channels.SocketChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Random;

import javax.swing.*;
import javax.swing.text.*;
import java.util.Set;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.KeyStroke;
import javax.swing.text.BadLocationException;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;

import kr.ac.konkuk.ccslab.cm.entity.CMGroup;
import kr.ac.konkuk.ccslab.cm.entity.CMGroupInfo;
Expand Down Expand Up @@ -3785,17 +3819,22 @@ public void testMqttPublish()
printMessage("========== MQTT publish\n");
JTextField topicTextField = new JTextField();
JTextField messageTextField = new JTextField();
String[] qosArray = {"0", "1", "2"};
String[] qosArray = {"0", "1", "2", "3"}; //::::::::::::::::::::::::::
JComboBox<String> qosComboBox = new JComboBox<String>(qosArray);
JCheckBox dupFlagBox = new JCheckBox();
JCheckBox retainFlagBox = new JCheckBox();
JTextField strReceiverField = new JTextField();
JTextField nMinNumWaitedEventsField = new JTextField();
Object[] msg = {
"topic", topicTextField,
"message", messageTextField,
"QoS", qosComboBox,
"dup flag", dupFlagBox,
"retain flag", retainFlagBox
"retain flag", retainFlagBox,
"strReceiver", strReceiverField,
"nMinNumWaitedEvents", nMinNumWaitedEventsField
};

int nRet = JOptionPane.showConfirmDialog(null, msg, "MQTT publish",
JOptionPane.OK_CANCEL_OPTION);
if(nRet != JOptionPane.OK_OPTION) return;
Expand All @@ -3805,6 +3844,12 @@ public void testMqttPublish()
byte qos = (byte) qosComboBox.getSelectedIndex();
boolean bDupFlag = dupFlagBox.isSelected();
boolean bRetainFlag = retainFlagBox.isSelected();
String strReceiver = strReceiverField.getText().trim();
String strMinNumWaitedEvents = nMinNumWaitedEventsField.getText().trim();
int nMinNumWaitedEvents = 0;
if(!strMinNumWaitedEvents.isEmpty()) {
nMinNumWaitedEvents = Integer.parseInt(strMinNumWaitedEvents);
}

CMMqttManager mqttManager = (CMMqttManager)m_clientStub.findServiceManager(CMInfo.CM_MQTT_MANAGER);
if(mqttManager == null)
Expand All @@ -3813,14 +3858,18 @@ public void testMqttPublish()
return;
}
//mqttManager.publish(1, "/CM/test", "This is a test message.", (byte)1);
mqttManager.publish(strTopic, strMessage, qos, bDupFlag, bRetainFlag);
if(qos==3) {
mqttManager.publish(strTopic, strMessage, qos, bDupFlag, bRetainFlag, strReceiver, nMinNumWaitedEvents);
}else {
mqttManager.publish(strTopic, strMessage, qos, bDupFlag, bRetainFlag);
}
}

public void testMqttSubscribe()
{
printMessage("========== MQTT subscribe\n");
JTextField topicFilterTextField = new JTextField();
String[] qosArray = {"0", "1", "2"};
String[] qosArray = {"0", "1", "2", "3"}; //::::::::::::::::::
JComboBox<String> qosComboBox = new JComboBox<String>(qosArray);
Object[] msg = {
"topic filter", topicFilterTextField,
Expand Down
8 changes: 5 additions & 3 deletions CM/src/CMWinClientEventHandler.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import java.awt.Desktop;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JOptionPane;

import java.io.*;
import java.awt.*;

import kr.ac.konkuk.ccslab.cm.entity.CMServerInfo;
import kr.ac.konkuk.ccslab.cm.entity.CMSessionInfo;
import kr.ac.konkuk.ccslab.cm.event.CMDataEvent;
Expand Down
8 changes: 6 additions & 2 deletions CM/src/CMWinServerEventHandler.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import java.util.Iterator;
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.DatagramChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;

import kr.ac.konkuk.ccslab.cm.event.CMDummyEvent;
import kr.ac.konkuk.ccslab.cm.event.CMEvent;
Expand Down
Loading