Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

communication par socket entre appli Java et Python

2 réponses
Avatar
Jack
Bonjour,
j'essaie de faire communiquer une application java et un application python
en utilisant les sockets.
Mais lorsque je lance le client, il me renvoie un erreur "Fatal exception
occurred. Program will exit".
dans l'a console j'ai le message : java.net.ConnectException: Connection
refused
j'ai vérifié les ports ainsi que les adresses ip.
quelque sait-il d'ou peut venir l'erreur ?

Merci d'avance.

Voici le code du serveur en python :

# Importe socket..
from socket import *

# Variables, encore...
host = "127.0.0.1"
port = 12345
buf = 1024
addr = (host,port)

# On fait le socket
# et bind l'addresse
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)

# On recois le message
while 1:
data,addr = UDPSock.recvfrom(buf)
if not data:
print "Le client a quitte"
break
else:
print "\nRecu: '",data,"'"

# On ferme tout ca
UDPSock.close()


Voici le code du client en Java

import java.io.*;
import java.net.*;
public class Client {
static final int port = 12345;

public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", port);
System.out.println("SOCKET = " + socket);

BufferedReader plec = new BufferedReader(new
InputStreamReader(socket.getInputStream()));

PrintWriter pred = new PrintWriter(
new BufferedWriter(
new
OutputStreamWriter(socket.getOutputStream())),
true);

String str = "bonjour";
for (int i = 0; i < 10; i++) {
pred.println(str); // envoi d'un message
str = plec.readLine(); // lecture de l'écho
}
plec.close();
pred.close();
socket.close();
}
}

2 réponses

Avatar
SL
Jack wrote:
Bonjour,
j'essaie de faire communiquer une application java et un application python
en utilisant les sockets.
Mais lorsque je lance le client, il me renvoie un erreur "Fatal exception
occurred. Program will exit".
dans l'a console j'ai le message : java.net.ConnectException: Connection
refused
j'ai vérifié les ports ainsi que les adresses ip.
quelque sait-il d'ou peut venir l'erreur ?

Merci d'avance.

Voici le code du serveur en python :

...

UDPSock = socket(AF_INET,SOCK_DGRAM)
... une socket UDP donc...



Voici le code du client en Java

import java.io.*;
import java.net.*;
public class Client {
static final int port = 12345;

public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", port);
System.out.println("SOCKET = " + socket);
...

en java Socket correspond a une socket client TCP.
et ca ne marche pas parceque lorsque tu lance ton prog java il doit y
avoir une socket TCP serveur (a l'ecoute = qui fait un listen()) sur le
port en question

sinon c'est impec :)

tcho

Avatar
Christophe M
Jack wrote:

Bonjour,
j'essaie de faire communiquer une application java et un application
python en utilisant les sockets.
Mais lorsque je lance le client, il me renvoie un erreur "Fatal
exception occurred. Program will exit".
dans l'a console j'ai le message : java.net.ConnectException:
Connection refused
j'ai vérifié les ports ainsi que les adresses ip.
quelque sait-il d'ou peut venir l'erreur ?

Merci d'avance.

Voici le code du serveur en python :

...


UDPSock = socket(AF_INET,SOCK_DGRAM)


... une socket UDP donc...



Voici le code du client en Java

import java.io.*;
import java.net.*;
public class Client {
static final int port = 12345;

public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", port);
System.out.println("SOCKET = " + socket);


...
en java Socket correspond a une socket client TCP.
et ca ne marche pas parceque lorsque tu lance ton prog java il doit y
avoir une socket TCP serveur (a l'ecoute = qui fait un listen()) sur le
port en question

sinon c'est impec :)

tcho


Trop fort, il pose la question sur les 2 newsgroups, ici on répond sur
le java et sur l'autre je répond sur le python :-p

Bon, donc ben oui, il faut 1 des 2 programmes qui soit un serveur et
l'autre un client. ça dépend lequel doit être le serveur.
Vu le message de la console, j'ai supposé que le Java devait être
client, donc le python serveur.