| 订阅 | 在线投稿
分享
 
 
 

PHP和C通过Socket通信--UDP篇

2008-12-19 08:07:34 编辑來源:互联网 国际版 评论
 
 
本文为【PHP和C通过Socket通信--UDP篇】的汉字拼音对照版显示拼音
  /*server.c*/

  #include <sys/types.h>

  #include <sys/socket.h>

  #include <string.h>

  #include <stdio.h>

  #include <netinet/in.h>

  #include <arpa/inet.h>

  #include <stdlib.h>

  #include <unistd.h>

  #include <errno.h>

  main(){

   int sock;

   struct sockaddr_in server,client;

   int recvd,snd;

   int structlength;

   char * server_ip = "128.168.10.1";/*server ip address*/

   int port = 8888;

   char recvbuf[2000],sendbuf[2000];

   char str1[]="I have received:\n";

   memset((char *)&server,0,sizeof(server));

   server.sin_family = AF_INET;

   server.sin_addr.s_addr = inet_addr(server_ip);

   server.sin_port = htons(port);

   memset((char *)&client,0,sizeof(client));

   client.sin_family = AF_INET;

   client.sin_addr.s_addr = htonl(INADDR_ANY);

   client.sin_port = htons(port);

  

   if((sock = socket (AF_INET,SOCK_DGRAM,0)) < 0 ){

   printf("socket create error!\n");

   exit(1);

   }

   structlength = sizeof(server);

   if( bind(sock,(struct sockaddr *) &server,structlength) < 0){

   printf("socket bind error!\n");

   perror("bind");

   exit(1);

   }

   while(1){

   structlength = sizeof(client);

  

   printf("waiting.......\n");

   recvd = recvfrom(sock,recvbuf,sizeof(recvbuf),0,

   (struct sockaddr *) & client,&structlength);

   if(recvd < 0){

   perror("recvfrom");

   exit(EXIT_FAILURE);

   }

   else{

   printf("received:%s\n",recvbuf);

  

   memset(sendbuf,0,strlen(sendbuf));

   memcpy(sendbuf,str1,strlen(str1));

  

   snd = sendto(sock,sendbuf,strlen(str1),0,

   (struct sockaddr *) &client,structlength);

   if(snd < 0){

   perror("sendto");

   exit(1);

   }

   printf("sendok!\n");

   }

   }

   close(sock);

  }

  /*

  gcc -o server server.cshengchengserverchengxuzaifuwuqiduanyunxing./server

  */

  /*client.php*/

  <?php

  $server_ip="128.168.10.1";

  $port = 8888;

sock=@socket_create(AF_INET,SOCK_DGRAM,0]$sock=@socket_create(AF_INET,SOCK_DGRAM,0);

  if(!$sock){

   echo "socket create failure";

  }

  if($buf=="")

   $buf="hello,how are you!\n";

  if(sock,$buf,strlen($buf),0,]!@socket_sendto($sock,$buf,strlen($buf),0,"128.168.10.1",8888)){

   echo "send error\n";

   socket_close($sock);

   exit();

  }

  $buf="";

  $msg="";

  if(sock,$msg,256,0,&$server_ip,&$port]!@socket_recvfrom($sock,$msg,256,0,&$server_ip,&$port)){

   echo "recvieve error!";

   socket_close($sock);

   exit();

  }

  echo trim($msg)."\n";

  socket_close($sock);

  ?>

  <form action="client.php" method="post">

  <input type=text name=buf>

  <input type=submit value="submit">

  </form>

  /*zhegeguochenghenjiandanjiushikehuduantijiaoyigexinxifuwuduanjieshou

  bingfanhuigeikehuduanyige"jieshoudao"dequerenxinxi

  */原文
 
 
/*server.c*/ #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> main(){ int sock; struct sockaddr_in server,client; int recvd,snd; int structlength; char * server_ip = "128.168.10.1";/*server ip address*/ int port = 8888; char recvbuf[2000],sendbuf[2000]; char str1[]="I have received:\n"; memset((char *)&server,0,sizeof(server)); server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(server_ip); server.sin_port = htons(port); memset((char *)&client,0,sizeof(client)); client.sin_family = AF_INET; client.sin_addr.s_addr = htonl(INADDR_ANY); client.sin_port = htons(port); if((sock = socket (AF_INET,SOCK_DGRAM,0)) < 0 ){ printf("socket create error!\n"); exit(1); } structlength = sizeof(server); if( bind(sock,(struct sockaddr *) &server,structlength) < 0){ printf("socket bind error!\n"); perror("bind"); exit(1); } while(1){ structlength = sizeof(client); printf("waiting.......\n"); recvd = recvfrom(sock,recvbuf,sizeof(recvbuf),0, (struct sockaddr *) & client,&structlength); if(recvd < 0){ perror("recvfrom"); exit(EXIT_FAILURE); } else{ printf("received:%s\n",recvbuf); memset(sendbuf,0,strlen(sendbuf)); memcpy(sendbuf,str1,strlen(str1)); snd = sendto(sock,sendbuf,strlen(str1),0, (struct sockaddr *) &client,structlength); if(snd < 0){ perror("sendto"); exit(1); } printf("sendok!\n"); } } close(sock); } /* gcc -o server server.c生成server程序,在服务器端运行./server */ /*client.php*/ <?php $server_ip="128.168.10.1"; $port = 8888; [url=mailto:$sock=@socket_create(AF_INET,SOCK_DGRAM,0]$sock=@socket_create(AF_INET,SOCK_DGRAM,0[/url]); if(!$sock){ echo "socket create failure"; } if($buf=="") $buf="hello,how are you!\n"; if([url=mailto:!@socket_sendto($sock,$buf,strlen($buf),0,]!@socket_sendto($sock,$buf,strlen($buf),0,"128.168.10.1",8888[/url])){ echo "send error\n"; socket_close($sock); exit(); } $buf=""; $msg=""; if([url=mailto:!@socket_recvfrom($sock,$msg,256,0,&$server_ip,&$port]!@socket_recvfrom($sock,$msg,256,0,&$server_ip,&$port[/url])){ echo "recvieve error!"; socket_close($sock); exit(); } echo trim($msg)."\n"; socket_close($sock); ?> <form action="client.php" method="post"> <input type=text name=buf> <input type=submit value="submit"> </form> /*这个过程很简单,就是客户端提交一个信息,服务端接收, 并返回给客户端一个"接收到"的确认信息。 */
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

网络安全治理:国家安全保障的主要方向是打击犯罪,而不是处置和惩罚受害者

来源:中国青年报 新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...

 
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
纯美的她_仔婷
苏州河畔_秀气女生
痞子的甘南日记
疑是银河落九天
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有