Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
DevMonroe
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 9
1

Online Chat with GUI

31.10.2015, 18:10. Просмотров 694. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 18:10
Ответы с готовыми решениями:

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

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

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

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

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

1
asdzxc
63 / 61 / 37
Регистрация: 13.04.2014
Сообщений: 284
Завершенные тесты: 3
01.11.2015, 11:22 2
DevMonroe, Простой клиент-сервер с многопоточностью
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2015, 11:22

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.