0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 9

Online Chat with GUI

31.10.2015, 18:10. Показов 1447. Ответов 1

Студворк — интернет-сервис помощи студентам
Всем привет. Недавно на работе я начал изучать Java. Проблема в том, что мне дали задание сделать чат. Я подготовил основу для него, но последнее задание я сделать никак не могу. Прошу о помощи. Последнее задание заключается в том, чтобы Создать на основе сокетов клиент/серверное визуальное приложение: Клиент посылает через сервер сообщение другому клиенту.

Вот сама основа:
InetLogic.java

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package chapt15;
 
import java.net.*;
import org.omg.CORBA.portable.UnknownException;
 
 
public class InetLogic {
    public static void main(String[] args) throws UnknownHostException{
        InetAddress myIP = null;
        InetAddress upceIP = null;
        try{
            myIP = InetAddress.getLocalHost();
            System.out.println("My IP is : " + myIP.getHostAddress());
            upceIP = InetAddress.getByName ("www.upce.cz");
            System.out.println("UPCE : " + upceIP.getHostAddress());
        } catch (UnknownException e){
            e.printStackTrace();
        }
    }
}
MyClientSocket.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package chapt15;
 
import java.io.*;
import java.net.*;
 
public class MyClientSocket {
    public static void main(String[] args) {
        Socket socket = null;
        try {
            socket = new Socket("Server Name", 8030);
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String msg = br.readLine();
            System.out.println(msg);
            socket.close();
        } catch (IOException e) {
            System.err.println("error: " + e);
        }
    }
}
MyServerSocket.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package chapt15;
 
import java.io.*;
import java.net.*;
 
public class MyServerSocket {
    public static void main(String[] args) throws IOException {
        Socket s = null;
        try {
            ServerSocket server = new ServerSocket(8030);
            s = server.accept();
            PrintStream ps = new PrintStream(s.getOutputStream());
            ps.println("Hello!");
            ps.flush();
            ps.close();
        } catch (IOException e) {
            System.err.println("Error: " + e);
        } finally {
            if (s != null)
                s.close();
        }
    }
    
}
MyShowDocuments.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package chapt15;
 
import java.awt.Graphics;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JApplet;
 
public class MyShowDocument extends JApplet {
 
    private URL upce = null;
 
    public String getMyURL() {
        return "http://www.upce.cz";
    }
 
    @Override
    public void paint(Graphics g) {
        int timer = 0;
        g.drawString("Loading page", 10, 10);
        try {
            for (; timer < 30; timer++) {
                g.drawString(".", 10 + timer * 5, 25);
                Thread.sleep(100);
            }
            upce = new URL(getMyURL());
            getAppletContext().showDocument(upce, "_blank");
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}
NetClientThread.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package chapt15;
 
import java.io.*;
import java.net.*;
 
public class NetClientThread {
    public static void main(String[] args) {
        try {
            Socket s = new Socket(InetAddress.getLocalHost(), 8071);
            PrintStream ps = new PrintStream(s.getOutputStream());
            BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            for (int i=1; i<=10; i++) {
                ps.println("PING");
                System.out.println(br.readLine());
                Thread.sleep(1000);   
            }
            s.close();
        } catch (UnknownHostException e) {
            System.out.println("Address is unavailable");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("Error I/O stackflow");
            e.printStackTrace();
        } catch (InterruptedException e) {
            System.out.println("Error of flow completion");
            e.printStackTrace();
        }
    }
}
NetServerThread.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package chapt15;
 
import java.io.*;
import java.net.*;
 
public class NetServerThread {
    public static void main(String[] args) {
        try {
            ServerSocket serv = new ServerSocket(8071);
            System.out.println("Initialized");
            while (true) {
                Socket sock = serv.accept();
                System.out.println(sock.getInetAddress().getHostName()+" connected");
                ServerThread server = new ServerThread(sock);
                server.start();
            }
        } catch (IOException e) {
            System.err.println(e);
        }
    }
}
class ServerThread extends Thread {
    private PrintStream os;
    private BufferedReader is;
    private InetAddress addr;
    
    public ServerThread(Socket s) throws IOException {
        os = new PrintStream(s.getOutputStream());
        is = new BufferedReader(new InputStreamReader(s.getInputStream()));
        addr = s.getInetAddress();
    }
    @Override
    public void run() {
        int i = 0;
        String str;
        try {
            while ((str = is.readLine()) != null) {
                if ("PING".equals(str))
                    os.println("PONG "+ ++i);
                System.out.println("PING-PONG" + i + " with " + addr.getHostName());
            }
        } catch (IOException e) {
            System.out.println("Disconnect");
        } finally {
            disconnect();
        }
    }
    public void disconnect() {
        try {
            System.out.println(addr.getHostName() + " disconnected");
            os.close();
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            this.interrupt();
        }
    }
}
ReadDocument.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package chapt15;
 
import java.net.*;
import java.io.*;
 
public class ReadDocument {
    public static void main(String[] args) {
        try {
            URL lab = new URL("http://www.upce.cz");
            InputStreamReader isr = new InputStreamReader(lab.openStream());
            BufferedReader d = new BufferedReader(isr);
            String line = " ";
            while ((line = d.readLine()) !=null) {
                System.out.println(line);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}
Recipient.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package chapt15;
 
import java.io.*;
import java.net.*;
 
public class Recipient {
    public static void main(String[] args) {
        File file = new File("toxic2.mp3");
        System.out.println("Data transfering...");
        try {
            acceptFile(file,8033,1000);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private static void acceptFile(File file, int port, int pacSize) throws IOException {
        byte data[] = new byte[pacSize];
        DatagramPacket pac = new DatagramPacket(data, data.length);
        DatagramSocket s = new DatagramSocket(port);
        FileOutputStream os = new FileOutputStream(file);
        try {
            s.setSoTimeout(60000);
            while (true) {
                s.receive(pac);
                os.write(data);
                os.flush();
            }
        } catch (SocketTimeoutException e) {
            os.close();
            System.out.println("Time is out, Data transfering is finished");
        }
    }
}
Sender.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package chapt15;
 
import java.io.*;
import java.net.*;
 
public class Sender {
    public static void main(String[] args) {
        try {
            byte[] data = new byte[1000];
            DatagramSocket s = new DatagramSocket();
            InetAddress addr = InetAddress.getLocalHost();
            FileInputStream fr = new FileInputStream(new File("toxic.mp3"));
            DatagramPacket pac;
            
            while (fr.read(data) != -1) {
                pac = new DatagramPacket(data, data.length, addr, 8033);
                s.send(pac);
            }
            fr.close();
            System.out.println("File sent");
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
UnCheckedHost.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package chapt15;
 
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
 
public class UnCheckedHost {
    public static void main(String[] args){
        byte ip[] = {(byte)217, (byte)21, (byte)43, (byte)10};
        try {
            InetAddress addr = InetAddress.getByAddress("University", ip);
            System.out.println(addr.getHostName() + ": connection: " + addr.isReachable(1000));
        } catch (UnknownHostException e) {
            System.out.println("Address is unavailable");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("Stackflow error");
            e.printStackTrace();
        }
    }
}
Заранее Огромное Спасибо!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2015, 18:10
Ответы с готовыми решениями:

Java Socket Chat + GUI трабл с сообщениями
Господа нужна консультация. Решил написать простенький сокет чат, изучил литературу нашел несколько примеров и скомпоновал самые удачные...

Chat-клиент, chat-сервер
Доброго времени суток. Задача - написать чат-сервер и чат-клиент на сокетах. Клиент и сервер написал, но клиенты работаю, скажем так по...

Как запустить qt gui программу, как демон, без gui, скрыв gui?
Как запустить qt gui программу, как демон, без gui, скрыв gui? В gui браузер выполняет определенные действия, и нужно запустить этот...

1
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
01.11.2015, 11:22
DevMonroe, Простой клиент-сервер с многопоточностью
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2015, 11:22
Помогаю со студенческими работами здесь

[ubuntu] Как запустить qt-gui программу без gui-интерфейся из консоли?
Как запустить qt-gui программу без gui-интерфейса из консоли?

Как запустить GUI приложение (например, notepad.exe) без отображения GUI?
Добрый день. Интересует есть ли такая возможность, как запустить GUI приложение (например, notepad.exe) без отображения GUI?

LWJGL и GUI - Выход из рендерного цикла для роботы в GUI без потери окна
Всем привет! Учусь использовать OpenGL в Java. И у меня возникла небольшая проблемка, окно LWJGL запускается с гуи, и если уже запустился...

LWJGL+ GUI - Выход из рендерного цикла для работы в GUI без потери окна
Всем привет! Учусь использовать OpenGL в Java. И у меня возникла небольшая проблемка, окно LWJGL запускается с гуи, и если уже...

chat
public ChatServer(int port) throws IOException { ss = new ServerSocket(port); // создаем сервер-сокет this.port =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru