Bonjour,
Voila mon probleme, j'ai une application client et une server, les 2 communiquent a merveille sur la loopback adresse (127.0.0.1-255), en LAN (192.168.1.32-64), mais pas sur WAN (77.234.52.3). Je sais plus quoi faire, personne peut m'aider on m'a dit des betises, que c'etait le port forwarding, le NAT, mon routeur, etc. j'ai tout essaye sans resultat y a-t-il une difference dans la maniere de programmer si on se trouve sur LAN ou WAN.
Merci pour toute reponse.
CLIENT
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
#define port 23
int main()
{
char buffer[32] = "";
WSADATA wsadata;
int error = WSAStartup(MAKEWORD(2, 0), &wsadata);
SOCKET ssocket;
SOCKADDR_IN sin;
if(!error)
{
ssocket = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("192.168.1.34");
//sin.sin_addr.s_addr = inet_addr("127.0.0.1");
//sin.sin_addr.s_addr = inet_addr("88.207.235.123");
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
if(connect(ssocket, (SOCKADDR *)&sin, sizeof(sin)) != SOCKET_ERROR)
{
printf("\nConnected to %s with port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
if(recv(ssocket, buffer, 32, 0) != SOCKET_ERROR)
printf("Recu : %s\n", buffer);
}
else
{
printf("\nConnection error!\n");
}
closesocket(ssocket);
}
WSACleanup();
system("PAUSE");
return 0;
}
SERVER
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <winsock.h>
#define port 23
int main()
{
char buffer[32] = "Server on standby!!!";
printf("\nStarting server...\n");
WSADATA wsadata;
int error = WSAStartup(MAKEWORD(2, 0), &wsadata);
SOCKET ssocket;
SOCKADDR_IN sin;
SOCKET csocket;
SOCKADDR_IN cin;
int recsize = sizeof cin;
int ssocket_err;
if(!error)
{
ssocket = socket(AF_INET, SOCK_STREAM, 0);
if(ssocket != INVALID_SOCKET)
{
printf("Socket %d open in TCP/IP mode\n", ssocket);
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
ssocket_err = bind(ssocket, (SOCKADDR *) &sin, sizeof sin);
if(ssocket_err != SOCKET_ERROR)
{
printf("Listening on port %d...\n", port);
ssocket_err = listen(ssocket, 1);
if(ssocket_err != SOCKET_ERROR)
{
printf("Wait till client has connected to port %d...\n", port);
csocket = accept(ssocket, (SOCKADDR *) &cin, &recsize);
printf("Client is connected with socket %d de %s:%d\n", csocket, inet_ntoa(cin.sin_addr), htons(cin.sin_port));
ssocket_err = send(csocket, buffer, 32, 1);
if(ssocket_err != SOCKET_ERROR)
{
printf("String sended: %s\n", buffer);
}
else
{
printf("Transmission error\n");
}
shutdown(csocket, 1);
}
}
printf("Closing server...\n\n");
closesocket(ssocket);
}
}
WSACleanup();
system("PAUSE");
return 0;
}
bolozofvelasgo@hotmail.com