Deaddy | biensur c'est possible, par ex:
server en c:
Code :
- #include <stdio.h>
- #include <sys/socket.h>
- #include <netdb.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- main(int argc, char * argv[])
- {
- struct sockaddr_in addr,from;
- struct hostent *iptemp;
- socklen_t len=sizeof(addr);
- char buff[3000];
- int s,n,conn,sockop=1;
- if (argc<2) {printf("USAGE: %s <port d'ecoute> [<ip locale>]\n",argv[0]);exit(-
- 1);}
- if (argc==3)
- {
- iptemp=gethostbyname(argv[2]);
- addr.sin_addr=*(struct in_addr*)iptemp->h_addr;
- }
- else addr.sin_addr.s_addr=INADDR_ANY;
- addr.sin_family=AF_INET;
- addr.sin_port=htons(atoi(argv[1]));
- if((s=socket(PF_INET,SOCK_STREAM,0))<1) {perror("Socket" );exit(-1);}
- setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&sockop,sizeof(sockop));
- if (bind(s,(sockaddr *)&addr,len)<0) {perror("Bind" );exit(-1);}
- if (listen(s,4)<0) {perror("listen impossible" );exit(-1);}
- conn=accept(s,(sockaddr*)&from,&len); // accepte connexion
- n=read(conn,buff,3000);
- printf("recu %d octets :%s\n",n,buff);
- strcpy(buff,"salut" );
- write(conn,buff,6);
- shutdown(conn,2);
- close(conn);
- shutdown(s,2);
- close(s);
- }
|
en le client php:
Code :
- <?php
- $sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
- socket_connect($sock,"www.chezmoi.org",2210);
- socket_write($sock,"bonjour",7);
- $buff=socket_read($sock,50,0);
- socket_close($sock);
- echo $buff;
- ?>
|
|