Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Java SE CallBack -Обратный вызов http://www.cyberforum.ru/java-j2se/thread856232.html
Не могу вкурить обратные вызовы в Java. По Вики - это передача исполняемого кода в качестве одного из параметров другого кода. Обратный вызов позволяет в функции исполнять код, который задаётся в...
Java SE терминологии командной строки
Есть у меня некое задание. Первый пункт звучит так: 1. Необходимо создать программу на Java, которая выводит в консоль параметры командной строки программы. Каждый отдельный параметр командной...
Структуры данных. Коллекции Java SE
Вот такое задание, кому не сложно :friends: Написать консольную программу, которая бы по каждой букве алфавита выводила список слов, начинающихся с этой буквы. Слова содержатся в тексте,...
Java SE Замена одного символа другим и кодировка 1. Пытаюсь в строке заменить символ "1" символом "|". Для этого делаю следующее: (data_02.words_from_text.get(i)).replaceAll("1", "\\|"); где data_02.words_from_text обычный ArrayList<String>..... http://www.cyberforum.ru/java-j2se/thread855879.html
Java SE Кракозябры в окне командной строки http://www.cyberforum.ru/java-j2se/thread855415.html
Здравствуйте! Помогите начинающему Java-программисту! Есть проблема -вместо русских букв в окне командной строки при запуске java-приложений выводятся кракозябры. Доп.Информация: Netbeans 7.2.1,...
Массивы Java SE
Помогите: 1.)создать* 1 мерный *массив** типа** Лонг, и заполнить его ячейки цифрой 7. 2.)***** Создать 2 мерный массив* типа Лонг и заполнить его ячейки *цифрой 7.
Java SE Скорость загрузки страницы
Доброго времени суток! Получаю страницу и время ее скачивания следующим образом: URLConnection conn; InputStreamReader is; BufferedReader in = null; StringBuilder...
Java SE Dining philosophers problem Не уверен что это тот раздел что мне надо, но раз уж я реализовываю на java то пускай будет он. Собственно сама задача если кто никогда не встречался с ней: Пять безмолвных философов сидят вокруг... http://www.cyberforum.ru/java-j2se/thread854903.html
Java SE Первая элементарная программа http://www.cyberforum.ru/java-j2se/thread854822.html
Хочу написать свою первую программу на Java и не могу. По идее она должна запрашивать у пользователя цифры и вводить их в массив, а потом говорить, что вот, типа, какие цифры вы ввели. Вот код: ...
Java SE zip архив как массив файлов Всем привет, возможно ли из zip архива считать масив файлов в оперативную память простым способом? http://www.cyberforum.ru/java-j2se/thread854613.html
Федя Форточкин
69 / 83 / 33
Регистрация: 09.12.2012
Сообщений: 222
Записей в блоге: 3
06.05.2013, 18:11  [ТС] 0

Чат на сокетах

06.05.2013, 18:11. Просмотров 7815. Ответов 13
Метки (Все метки)

Ответ

Freeman666, клиент:
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
import java.net.*;
import java.io.*;
import java.util.*;
class SampleClient extends Thread
{
     Socket s;
     static BufferedReader in;
     public static void main(String args[])
    {
        try
        {
            Socket s = new Socket("localhost", 3128);
            Scanner input = new Scanner(System.in);
        String str;
        while(!(str = input.nextLine()).equalsIgnoreCase("exit")) {
        s.getOutputStream().write(str.getBytes());
            byte buf[] = new byte[64*1024];
            int r = s.getInputStream().read(buf);
            String data = new String(buf, 0, r);
            System.out.println(data);
    }
        }
        catch(Exception e)
        {System.out.println("init error: "+e);} 
    
}
}
сервер:
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
60
61
62
63
64
65
66
67
68
69
70
71
import java.net.*;
import java.io.*;
import java.util.*;
class SampleServer extends Thread
{
    static Socket s;
    int num;
    static ArrayList<Socket> users = new ArrayList<Socket>();
    public static void main(String args[])
    {
        try
        {
            int i = 0; 
 
            ServerSocket server = new ServerSocket(3128, 0,
                    InetAddress.getByName("localhost"));
 
            System.out.println("server is started");
 
 
            while(true)
            {
                s = server.accept();
                users.add(s);
                new SampleServer(i, s);
                i++;
            }
        }
        catch(Exception e)
        {System.out.println("init error: "+e);} 
    }
 
    public SampleServer(int num, Socket s)
    {
 
        this.num = num;
        this.s = s;
        setDaemon(true);
        setPriority(NORM_PRIORITY);
        start();
    }
 
    public void run()
    {
        try
        {
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();
            byte buf[] = new byte[64*1024];
        int r;
            while(/*(r = is.read(buf)) != -1*/true) {
            r = is.read(buf);
            String data = new String(buf, 0, r);
            data = ""+num+": "+""+data;
            //os.write(data.getBytes());
        for(int z = 0; z < users.size(); z++) {
        Socket ghost = users.get(z);
        //if (ghost.isConnected()) {
            ghost.getOutputStream().write(data.getBytes()); 
        //} else {
            //users.remove(z);
        //}
        }
            }
            //s.close();
        }
        catch(Exception e)
        {System.out.println("init error: "+e);} // вывод исключений
     
}
}
тут всё работает, только надо как-то сделать так чтобы клиент читал информацию паралельно от записи. пробовал вынести в отдельный поток, становилось ещё хуже

Вернуться к обсуждению:
Чат на сокетах
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 18:11

Чат на сокетах
Здравствуйте. Решил написать не большой чат на JAVA. Опыта работы в JAVA немного. Собственно решил...

Чат на сокетах
Здравствуйте, хочу сделать чат на PHP с использованием сокетов. С самими сокетами я познакомился,...

Чат на сокетах
Здрасьте. Знаю, что тема до невозможности бородатая, но возникла необходимость создания программы...

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