Подскажите, пожалуйста в чем может быть проблема - клиент подключается, но не передает данные на сервер ? (В логах пусто) Клиент и сервер находятся на одном хосте, при подлючении по telnet сообщения доставляются.
Сервер сокет:
public class Server extends Thread {
private ServerSocket socket;
private static int PORT = 5678;
public Server () {
this(PORT);
}
public Server (int p) {
int PORT = p;
setServerPort(PORT);
}
private void setServerPort(int p) {
Server.PORT = p;
}
public ServerSocket getServerSocket() {
return this.socket;
}
@Override
public void run() {
try {
ServerSocket socket = new ServerSocket(PORT);
this.socket = socket;
System.out.println("Sever running at port: " + PORT);
while (true) {
Socket accept = socket.accept();
new ServeOneClient(accept);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Сервер-клиенты:
public class ServeOneClient extends Thread {
private Socket socket;
private OutputStreamWriter out;
private BufferedReader in;
public ServeOneClient (Socket socket) {
this.socket = socket;
System.out.println("Client connected: " + socket.toString());
this.start();
}
@Override
public void run() {
while (true) {
try {
out = new OutputStreamWriter(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(" Line + " + in.readLine());
} catch (IOException s) {
try {
System.out.println("Client connection closed " + socket.toString());
socket.close();
} catch (IOException c) {
c.printStackTrace();
}
s.printStackTrace();
}
}
}
}
Код клиента :
public class Client extends Thread {
private Socket connect;
private ObjectOutputStream output;
private ObjectInputStream input;
private String address;
private int port;
public Client(String a, int p) throws InterruptedException, IOException {
address = a;
port = p;
}
private void setConnect (Socket c) {
this.connect = c;
}
private void setOOS (ObjectOutputStream output) {
this.output = output;
}
private void setOIS (ObjectInputStream input) {
this.input = input;
}
public String getServerAddress () {
return this.address;
}
@Override
public void run() {
try {
while(true) {
Socket connect = new Socket(InetAddress.getByName(address), port);
setConnect (connect);
ObjectOutputStream output = new ObjectOutputStream(connect.getOutputStream());
setOOS (output);
ObjectInputStream input = new ObjectInputStream(connect.getInputStream());
setOIS (input);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendMsg(String msg) {
try {
output.writeObject(connect.getPort() + ": " + msg);
output.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Запуск клиента:
Client c = new Client(Preferences.getTwinAddress(), 5678);
c.start();
//данный вызов не дает результат.
c.sendMsg("CUSTOM MESSAGE");
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Должны ли названия полей класса и названия типов класса, к которому я парсю Json, полностью соответствовать названию полей, содержащихся в Json? И какие...
Необходимо найти все позиции вхождения шаблона в строкеШаблон выглядит как: "a?b", где '?' означает любой символ