ASCII
Server
ASCII-Server
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerASCII {
//Utiliser le port 80
private static final int LISTEN_PORT = 80;
public static void main(String[] args){
//Prise de réception
Socket socket =null;
//Prise passive(Socket serveur)
ServerSocket ss_socket = null;
try {
ss_socket = new ServerSocket(LISTEN_PORT);
} catch (IOException e1) {
//Bloc de capture généré automatiquement TODO
e1.printStackTrace();
}
//Ecrire le traitement côté serveur
try{
System.out.println("En attente du client");
socket = ss_socket.accept();
//Lecteur / graveur d'entrée / sortie
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
while (true) {
char[] buf = new char[1024];
if(in.read(buf) != -1){
try{
System.out.println("receive↓↓");
System.out.print(buf);
Thread.sleep(250);
}
catch(Exception ex){
ex.printStackTrace();
}
}
System.out.print("\n");
if (buf.equals("bye")) {
break;
}
out.write(buf);
out.flush();
}
}catch(IOException err){
err.printStackTrace();
}finally{
try{
if (socket!=null){
socket.close();
}
if (ss_socket!=null){
ss_socket.close();
}
System.out.println("C'est la fin côté serveur");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Client
ASCII-Client
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientASCII {
private static final String HOST = "localhost";//point d'accès
private static final int PORT = 80;//Utiliser le port 80
private static final String err = "0000";
public static void main(String[] args) throws InterruptedException {
ClientASCII aa = new ClientASCII();
aa.Cascii();
}
public void Cascii() throws InterruptedException{
Socket socket = null;
try {
socket = new Socket(HOST,PORT);
} catch (UnknownHostException e1) {
//Bloc de capture généré automatiquement TODO
e1.printStackTrace();
} catch (IOException e1) {
//Bloc de capture généré automatiquement TODO
e1.printStackTrace();
}
try{
//Lecteurs et écrivains entrants et sortants
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
BufferedReader csInput = new BufferedReader (new InputStreamReader(System.in));
while (true) {
System.out.println("-------------------");
System.out.println("Veuillez entrer la commande");
System.out.println("-------------------");
//Message à envoyer au serveur
String sendMSG = csInput.readLine();
String sub;
String check;
if(sendMSG.isEmpty()) {
System.out.println("↓ ↓ Quelque chose ne va pas ↓ ↓");
continue;
}
out.write(sendMSG);
out.flush();
//Sortir de la boucle avec l'entrée bye
if (sendMSG.equals("bye")) {
break;
}
//Recevoir la chaîne du serveur
System.out.print("receive->");
char[] buf = new char[1024];
if(in.read(buf) != -1){
System.out.print(buf);
System.out.println("\n");
sub = new String(buf);
if(!check.equals(err)) {
System.out.println("Erreur est survenue");
}
} else {
System.out.println("le retour est nul");
break;
}
}
}catch(IOException err){
err.printStackTrace();
}finally{
try {
if (socket != null) {
socket.close();
}
System.out.println("C'est la fin côté client");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Binary
Server
Binary-Server
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import org.apache.commons.codec.binary.Hex;
public class ServerBinary {
public static void main(String[] args) {
ServerBinary s1 = new ServerBinary();
s1.runSample();
}
void runSample() {
ServerSocket sSocket = null;
Socket socket = null;
BufferedReader reader = null;
PrintWriter writer = null;
OutputStream os = null;
byte crlf [] = {13,10};
try{
//Créez un socket côté serveur en spécifiant l'adresse IP et le numéro de port
sSocket = new ServerSocket();
sSocket.bind(new InetSocketAddress
("localhost",8000));
System.out.println("En attente de l'entrée du client");
//Continuer à attendre les demandes des clients
socket = sSocket.accept();
//Pour recevoir du client
reader = new BufferedReader(
new InputStreamReader
(socket.getInputStream()));
os = socket.getOutputStream();
//Boucle infinie Quittez la boucle en saisissant bye
String line = null;
while (true) {
line = reader.readLine();
byte[] sbyte = line.getBytes();
String ddd = new String(Hex.encodeHex(sbyte));
if (line.equals("bye")) {
break;
}
os.write(sbyte);
os.write(crlf);
System.out.println("Caractères saisis sur le client =" + ddd);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if (reader!=null){
reader.close();
}
if (socket!=null){
socket.close();
}
if (sSocket!=null){
sSocket.close();
}
System.out.println("C'est la fin côté serveur");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Client
Binary-Client
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import org.apache.commons.codec.binary.Hex;
public class ClientBinary {
public static void main(String[] args) {
ClientBinary s2 = new ClientBinary();
s2.runSample();
}
void runSample() {
Socket cSocket = null;
BufferedReader csInput = null;
PrintWriter writer = null;
BufferedReader reader = null;
try{
//Créez un socket côté client en spécifiant l'adresse IP et le numéro de port
cSocket = new Socket("localhost", 8000);
//Pour entrée côté client
csInput = new BufferedReader
(new InputStreamReader(System.in));
//Pour l'envoi du côté client vers le serveur
writer = new PrintWriter
(cSocket.getOutputStream(), true);
//Pour recevoir du côté serveur
reader = new BufferedReader
(new InputStreamReader
(cSocket.getInputStream()));
//Boucle infinie Quittez la boucle en saisissant bye
String line = null;
String read = null;
while (true) {
System.out.println("-------------------");
System.out.println("Veuillez entrer la commande");
System.out.println("-------------------");
line = csInput.readLine();
byte[] bi = line.getBytes();
//Envoyer des caractères à envoyer
if(line.isEmpty()) {
System.out.println("↓ ↓ Quelque chose ne va pas ↓ ↓");
continue;
}
writer.println(bi);
//Sortir de la boucle avec l'entrée bye
if (line.equals("bye")) {
break;
}
read = reader.readLine();
byte[] sbyte = read.getBytes();
String ddd = new String(Hex.encodeHex(sbyte));
System.out.println("return: " + ddd);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
writer.close();
}
if (csInput != null) {
csInput.close();
}
if (cSocket != null) {
cSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("C'est la fin côté client");
}
}
}
Recommended Posts