Вот недавно искал програми клиент/сервер и наткнулся на нечто подобное
код сервера
Код:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TCPServer {
public static void main(String[] args) {
String clientSentence = null;
String capitalizedSentence;
ServerSocket welcomeSocket = null;
try {
welcomeSocket = new ServerSocket(6789);
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
while (true) {
Socket connectionSocket = null;
try {
connectionSocket = welcomeSocket.accept();
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
BufferedReader inFromClient = null;
try {
inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
DataOutputStream outToClient = null;
try {
outToClient = new DataOutputStream(connectionSocket.getOutputStream());
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
try {
clientSentence = inFromClient.readLine();
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
capitalizedSentence = clientSentence.toUpperCase() + "\n";
try {
outToClient.writeBytes(capitalizedSentence);
} catch (IOException ex) {
Logger.getLogger(TCPServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
код клиента
Код:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TCPClient {
public static void main(String[] args) {
try {
String sentence = null;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = null;
try {
clientSocket = new Socket("localhost", 6789);
} catch (UnknownHostException ex) {
Logger.getLogger(TCPClient.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(TCPClient.class.getName()).log(Level.SEVERE, null, ex);
}
DataOutputStream outToServer = null;
try {
outToServer = new DataOutputStream(clientSocket.getOutputStream());
} catch (IOException ex) {
Logger.getLogger(TCPClient.class.getName()).log(Level.SEVERE, null, ex);
}
BufferedReader inFromServer = null;
try {
inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
} catch (IOException ex) {
Logger.getLogger(TCPClient.class.getName()).log(Level.SEVERE, null, ex);
}
try {
sentence = inFromUser.readLine();
} catch (IOException ex) {
Logger.getLogger(TCPClient.class.getName()).log(Level.SEVERE, null, ex);
}
outToServer.writeBytes(sentence + "\n");
modifiedSentence = inFromServer.readLine();
System.out.print("FROM SERVER: " + modifiedSentence);
clientSocket.close();
} catch (IOException ex) {
Logger.getLogger(TCPClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Принцип работы: запускаешь сервер, запускаешь клиент, пишеш строку в клиенте, жмешь "ентер" сообщение отправляется на сервер, сервер делает все буквы большим регистром и отправляет обратно клиенту