powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервер для нескольких клиентов.
11 сообщений из 11, страница 1 из 1
Сервер для нескольких клиентов.
    #38250719
wtf123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, делал сервер , который бы мог принимать сразу несколько клиентов. Не получается, помогите плс :(
Код: 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.
72.
73.
74.
75.
76.
77.
78.
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.*;
import java.util.Date;
import java.util.Scanner;

import javax.swing.*;


public class NetServerThread implements ActionListener{
	public static void main(String args[]){
		new NetServerThread();
	}
	PrintWriter pw;
	Scanner sc;

	JTextArea ta=new JTextArea(20,20);
	JButton knopka=new JButton("Send");
	JTextField eng=new JTextField(10);
	JLabel inp= new JLabel("Message:");
	NetServerThread(){
		JFrame fr=new JFrame();
		inp.setBounds(20,320,100,20);
		eng.setBounds(20,350,250,50);
		ta.setBounds(20,20,350,275);
		knopka.setBounds(275,350,100,35);
		knopka.addActionListener(this);
		eng.addActionListener(this);
		fr.add(ta);
		fr.add(eng);
		fr.add(knopka);
		fr.add(inp);
		fr.setLayout(null);
		
		fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fr.setSize(450,450);
		fr.setVisible(true);
		try{
			ServerSocket ss=new ServerSocket(3333);
			Socket x=ss.accept();
			pw=new PrintWriter(x.getOutputStream(),true);
			sc = new Scanner(x.getInputStream());
			In in=new In();
			in.start();
			Out out=new Out();
			out.start();
		}catch(Exception e){e.printStackTrace();}
	}
	class In extends Thread{
		public void run(){
			while (true){
				String a=sc.nextLine();
				System.out.println("client"+a);
				ta.append("Client: "+a+"\n"+(new Date()).toString());
			}
		}
	}
	class Out extends Thread{
		public void run(){
			Scanner osc=new Scanner(System.in);
			while (true){
				String a=osc.nextLine();
				pw.println(a);
			}
		}
	}

	public void actionPerformed(ActionEvent arg0) {
		String message = eng.getText();
		eng.setText("");
		pw.println(message);
		Date dt=new Date();
		ta.append("Me: "+message+"\n"+dt.toString()+"\n");
	}
}
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250723
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут куча примеров
https://www.google.com/search?q=Java simple socket server

Зачем серверу GUI?

Почему сервер и клиент - одно приложение?

Нужно понимать многопоточность в Swing. Нельзя из каких попало потоков менять состояние GUI напрямую.
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250729
wtf123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, Делалось что-то типо Чата. Все работает. Но только с одним клиентом. Надо сделать с Thread. Но у меня не получается.
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250734
wtf123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, Извиняюсь за даблпост. Сервер и клиент не одно приложение. Это Код сервера.
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250744
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wtf123Blazkowicz, Делалось что-то типо Чата. Все работает. Но только с одним клиентом. Надо сделать с Thread. Но у меня не получается.
Что именно не получается нам предстоит угадать? Или предлагается запустить этот код, написать для него клиента и увидеть самим?
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250760
wtf123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, я же сверху написал: " Здравствуйте, делал сервер , который бы мог принимать сразу несколько клиентов. Не получается!" и "Все работает. Но только с одним клиентом. Надо сделать с Thread. Но у меня не получается. " Ну если это не понятно , то -> Надо сделать из сервера ,который может принимать только одно соединение с клиентом , Сервер который бы смог принимать несколько клиентов. А именно : Сервер - чатом, в который смогли бы коннектиться несколько клиентов одновременно . Сейчас работает только с одним клиентом.
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250800
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250813
wtf123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman,Это немножко не то ^^
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250861
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wtf123А именно : Сервер - чатом, в который смогли бы коннектиться несколько клиентов одновременно . Сейчас работает только с одним клиентом.
С одном работает, с двумя не работает. Куда уж яснее. Просто не работает. Ни ошибок. Ничего. Даже не известно запускается или нет. Просто не работает и всё. К чему эти наводящие вопросы.

Где код клиента?
Второй клиент не запускается?
Второй клиент запускается и зависает?
Второй клиент запускается, работает, но выдаёт ошибку.
Второй клиент запускается, работает, отправляет, но сервер не показывает?
А так всё понятно. Удачи!
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250897
wtf123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, Сервер принимает только одного, т.е При подключении второго он его игнорит и принимает сообщения от первого клиента .Зачем код клиента , если клиенту все равно сколько клиентов подключено. но все же :
Код: 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.
72.
73.
74.
75.
76.
77.
78.
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.*;
import java.util.Date;
import java.util.Scanner;

import javax.swing.*;


public class NetClientThread implements ActionListener{
	public static void main(String args[]){
		new NetClientThread();
	}
	PrintWriter pw;
	Scanner sc;
	JTextArea ta=new JTextArea(20,20);
	JButton knopka=new JButton("Send");
	JTextField eng=new JTextField(10);
	JLabel inp= new JLabel("Message:");
	
		
	NetClientThread(){
			JFrame fr=new JFrame();
		inp.setBounds(20,320,100,20);
		eng.setBounds(20,350,250,50);
		ta.setBounds(20,20,350,275);
		knopka.setBounds(275,350,100,35);
		knopka.addActionListener(this);
		eng.addActionListener(this);
		fr.add(ta);
		fr.add(eng);
		fr.add(knopka);
		fr.add(inp);
		fr.setLayout(null);
		
		fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fr.setSize(450,450);
		fr.setVisible(true);
		try{
			Socket x=new Socket("localhost",3333);
			pw=new PrintWriter(x.getOutputStream(),true);
			sc = new Scanner(x.getInputStream());
			In in=new In();
			in.start();
			Out out=new Out();
			out.start();
		}catch(Exception e){e.printStackTrace();}
	}
	class In extends Thread{
		public void run(){
			while (true){
				String a=sc.nextLine();
				System.out.println("server"+a);
					ta.append("Server: "+a+"\n"+(new Date()).toString()+"\n");
			}
		}
	}
	class Out extends Thread{
		public void run(){
			Scanner osc=new Scanner(System.in);
			pw.println("Connected");
			while (true){
				String a=osc.nextLine();
				pw.println(a);
			}
		}
	}
	public void actionPerformed(ActionEvent arg0) {
		String message = eng.getText();
		eng.setText("");
		pw.println(message);
		Date dt=new Date();
		ta.append("Me: "+message+"\n"+dt.toString()+"\n");
	}
}
...
Рейтинг: 0 / 0
Сервер для нескольких клиентов.
    #38250948
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
установи 7 tomcat - там есть пример чата на websockets
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервер для нескольких клиентов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]