[Kylix] Creation de socket.....

Creation de socket..... [Kylix] - Programmation

Marsh Posté le 01-02-2002 à 13:46:31    

Salut,
g un ptit probleme:
je dois realiser une application client serveur avec des sockets.
Je sais les faire en C mais pas vraiment en pascal!
 
ex:
 
  var sockfd, longueur_adr : integer;
      adresse : struct sockaddr_un   <-- c ici ke sa plante!!
begin
 
  sockfd := socket (AF_UNIX,SOCK_STREAM, 0);
  adresse.sun_family = AF_UNIX;
  .
.
.
.
.
.
end.
 
Si qq1 a une soluce ca serait cool!!

Reply

Marsh Posté le 01-02-2002 à 13:46:31   

Reply

Marsh Posté le 01-02-2002 à 13:50:10    

format c:  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 :ouch: aucune id juste un petit up :) [:the real mask]

Reply

Marsh Posté le 01-02-2002 à 14:28:12    

haha megalol!!
en C, il faut rajouter les includes sys/types.h, sys/socket.h, sys/un.h
 
Mais avec kylix je sais pas koi ajouter!!
 :cry:  :cry:

Reply

Marsh Posté le 01-02-2002 à 14:44:22    

c'est du pascal, pas du C
en pascal y a pas de struct
vu que sockaddr_in est définir comme ceci:
 

Code :
  1. sockaddr_in = record
  2.   case Integer of
  3.     0: (sin_family: u_short;
  4.         sin_port: u_short;
  5.         sin_addr: TInAddr;
  6.         sin_zero: array[0..7] of Char);
  7.         sa_family: u_short;
  8.         sa_data: array[0..13] of Char) end;
  9.         WSAData=recordwVersion: Word;
  10.         wHighVersion: Word;
  11.         szDescription: array[0..WSADESCRIPTION_LEN] of Char;
  12.         szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char;
  13.         iMaxSockets: Word;
  14.         iMaxUdpDg: Word;
  15.         lpVendorInfo: PChar;);
  16.   end;


 
en marquant ceci ça doit passer :
 

Code :
  1. addresse: sockaddr_in;


 
sous Delphi faut rajouter IdWinsock dans les uses, c pareil pour kylix je pense...

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-02-2002 à 14:52:11    

sinon, tu vas boire une bonne bière en pensant au ski que tu feras dem1

Reply

Marsh Posté le 01-02-2002 à 14:59:23    

heuu.... ok merci!
mais sous linux ce serait pas plutot sockaddr_un avec un u au lieu du i  ???

Reply

Marsh Posté le 01-02-2002 à 15:14:23    

Desolé Gaetan mais g pris ton pseudo pour le post d'avant!!
Donc je voulais dire que je suis sous linux et kylix ne reconnais pas idwinsock --> ce ki me parait normal puiskil y a win dedans!!
mais c sympa de maider antp!!
 :sweat:

Reply

Marsh Posté le 01-02-2002 à 15:49:55    

up

Reply

Marsh Posté le 01-02-2002 à 15:59:32    

bhen cherche dans l'aide dans quoi est déclaré sockaddr_in (ou un truc du genre, c'est quoi ça _un ? même sous linux j'ai tj utilisé _in)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-02-2002 à 16:04:06    

ben c u comme unix!!
ou alors i comme inet!
ok jvé voir mais sa commence a menerver
en plus demain c les vacances et moi je pars o ski!!

Reply

Marsh Posté le 01-02-2002 à 16:04:06   

Reply

Marsh Posté le 01-02-2002 à 16:06:44    

ha bon...
 
dans kylix y a une unit "libc" que tu peux peut-être aller voir...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-02-2002 à 16:56:00    

ouep, sa marche kan je mets libc dans uses!!!
sa rulez du tonnerre!!
maintenant jvé voir pour u ou i!!
:D

Reply

Marsh Posté le 10-02-2002 à 15:24:25    

Yop, chui rentre du ski!
encore une semaine de vacances avant de revenir a ces pt1 de socket!!

Reply

Marsh Posté le 10-02-2002 à 20:56:06    

up

Reply

Marsh Posté le 10-02-2002 à 22:30:50    

up ? c'est pas résolu ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 11-02-2002 à 14:18:29    

sisi mais g envies de continuer a debattre sur ce sujet!!

Reply

Marsh Posté le 11-02-2002 à 21:58:38    

up, qq1 veut en discuter??
 :??:

Reply

Marsh Posté le 13-02-2002 à 15:25:21    

bon ben si qq1 a une idee sur un sujet qqonque, il n'a ka poster ici!!

Reply

Marsh Posté le 21-02-2002 à 14:12:12    

G encore un probleme:
c'est lors de la connection au serveur, en C sa donne :
 
int resultat = connect(sockfd, (struct sockaddr *)&adresse, longueur_adr);
 
Comme je suis sous linux en pascal, le compilateur ne capte pas le truc en gras!!
 :gun:

Reply

Marsh Posté le 21-02-2002 à 14:55:26    

lpoziggy a écrit a écrit :

Salut,
g un ptit probleme:
je dois realiser une application client serveur avec des sockets.
Je sais les faire en C mais pas vraiment en pascal!
 
ex:
 
  var sockfd, longueur_adr : integer;
      adresse : struct sockaddr_un   <-- c ici ke sa plante!!
begin
 
  sockfd := socket (AF_UNIX,SOCK_STREAM, 0);
  adresse.sun_family = AF_UNIX;
  .
.
.
.
.
.
end.
 
Si qq1 a une soluce ca serait cool!!  



Reply

Marsh Posté le 21-02-2002 à 15:00:58    

lpoziggy a écrit a écrit :

G encore un probleme:
c'est lors de la connection au serveur, en C sa donne :
 
int resultat = connect(sockfd, (struct sockaddr *)&adresse, longueur_adr);
 
Comme je suis sous linux en pascal, le compilateur ne capte pas le truc en gras!!
 :gun:  




de toutes façons pascal c kun enculé de vieux

Reply

Marsh Posté le 21-02-2002 à 15:18:29    

nan, serieux, je dois ecrire koi,,?

Reply

Marsh Posté le 21-02-2002 à 16:11:09    

sockaddr_in(@adresse)^
ou un truc du genre
 
& -> @
* -> ^


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-02-2002 à 16:27:46    

Donc je devrai ecrire:
connect(sockfd, sockaddr(@adresse)^, longueur_adr)???

Reply

Marsh Posté le 21-02-2002 à 16:41:50    

un truc du genre, faut tester jusqu'à ce que ça passe, ou trouver quelqu'un qui est habitué à utiliser les pointeurs en pascal :D
la déclaration de la fonction connect, ca ressemble à quoi ?
et la declaration de adresse ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-02-2002 à 16:57:33    

Ben en fait, Nibblet et moi on est les 2 seuls gars qui sommes sur Kylix!!!  :cry:  :cry:  
 
Fonction connect:
int connect(int sockfd, struct sockaddr *serveuraddr, int longueur_addr)
 
sockfd est le descripteur de socket  
serveuraddr est un pointeur sur une structure d'addresse de socket ki indike ladresse de destination avec lakelle le socket doit se connecter
longueur_addr est la taille de la structure d'adresse
 
 :cry:  :cry:

Reply

Marsh Posté le 21-02-2002 à 17:47:36    

ouais mais ça c'est la déclaration en C de la fonction... y a bien une déclaration en Pascal quelque part...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-02-2002 à 13:31:40    

Ouais je sais que c la declaration en C, mais je dois me démerder a ecrire tout ce bordel en pascal!!
Il ny a aucune autre aide que ce forum!!
 :gun:

Reply

Marsh Posté le 22-02-2002 à 14:38:08    

G trouvé un truc :
 
var
adresse : sockaddr_in;
resultat, longueur_adr : integer;
hostname : hostent;
const
host : string = 'adresse ip du serveur';
 
sockfd := socket(AF_INET, SOCK_STREAM, 0);
 
hostname := gethostbyname(host);
adresse.sin_family := AF_INET;
adresse.sin_port := 9734;
adresse.sin_addr := inet_addr(hostname);
.
.
.et apres la connexion!!
.
 
Mais c là ou c'est en gras ke sa plante!!
Il faut mettre un pointeur qq part!!

Reply

Marsh Posté le 22-02-2002 à 15:55:57    

peut-être gethostbyname(PChar(host)); si jamais la fonction s'attend à avoir un pointeur de chaîne de caractère style C.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed