c语言中的GPRS接口

c语言中的GPRS接口,c,sockets,C,Sockets,我想知道这段代码是否适用于在Linux中接受来自GPRS套接字的数据。如果没有,则如何修改程序以与GPRS插座通信 服务器c: #define sport 5000 #define bufferlength 100 int main(int argc, char **argv[]) { struct sockaddr_in serveraddr; int sd, acceptsd, rc; char buffer[bufferlength]; if ((sd = socket(

我想知道这段代码是否适用于在Linux中接受来自GPRS套接字的数据。如果没有,则如何修改程序以与GPRS插座通信

服务器c:

#define sport 5000
#define bufferlength 100

int main(int argc, char **argv[])
{
  struct sockaddr_in serveraddr;
  int sd, acceptsd, rc;
  char buffer[bufferlength];
  if ((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  {
    perror("error in socket creation\n");
    exit(0);
  }
  else
    printf("socket is created\n");

  serveraddr.sin_family = AF_INET;
  serveraddr.sin_port = htons(sport);
  serveraddr.sin_addr.s_addr = (INADDR_ANY);
  //serveraddr.sin_addr.s_addr=inet_addr("127.0.0.1");
  rc = bind(sd, (struct sockaddr *) &serveraddr, sizeof(serveraddr));
  if (rc < 0)
  {
    perror("srver bind error\n");
    close(sd);
    exit(-1);
  }
  else
    printf("binding done\n");

  rc = listen(sd, 5);
  if (rc < 0)
  {
    perror("listen error");
    close(sd);
    exit(-1);
  }
  else
    printf("listen() is o.k.\n");

  printf("server is ready\n");

  wait(100);
  acceptsd = accept(sd, NULL, NULL);
  if (acceptsd < 0)
  {
    perror("error in accepting\n");
    exit(-1);
    close(sd);
  }
  else
    printf("connection accepted\n");

  printf("server is ready to accept data\n");
  rc = recv(acceptsd, buffer, sizeof(buffer), 0);
  if (rc < 0)
  {
    perror("error in recieving\n");
    close(acceptsd);
    close(sd);
    exit(-1);
  }

  printf("send() is`enter code here` ok\n");

  close(acceptsd);
  close(sd);

  exit(0);
}
#定义运动5000
#定义缓冲区长度100
int main(int argc,字符**argv[]
{
serveraddr中的结构sockaddr\u;
int-sd、acceptsd、rc;
字符缓冲区[bufferlength];
if((sd=socket(AF\u INET,SOCK\u STREAM,0))<0)
{
perror(“套接字创建中出错\n”);
出口(0);
}
其他的
printf(“已创建套接字”);
serveraddr.sin_family=AF_INET;
serveraddr.sinu port=htons(运动型);
serveraddr.sin\u addr.s\u addr=(INADDR\u ANY);
//serveraddr.sin_addr.s_addr=inet_addr(“127.0.0.1”);
rc=bind(sd,(struct sockaddr*)和serveraddr,sizeof(serveraddr));
if(rc<0)
{
perror(“srver绑定错误\n”);
关闭(sd);
出口(-1);
}
其他的
printf(“绑定完成”\n);
rc=听(sd,5);
if(rc<0)
{
perror(“侦听错误”);
关闭(sd);
出口(-1);
}
其他的
printf(“listen()没问题。\n”);
printf(“服务器就绪\n”);
等待(100);
acceptsd=accept(sd,NULL,NULL);
如果(接受SD<0)
{
perror(“接受错误”);
出口(-1);
关闭(sd);
}
其他的
printf(“已接受连接”);
printf(“服务器已准备好接受数据\n”);
rc=recv(acceptsd,buffer,sizeof(buffer),0);
if(rc<0)
{
perror(“接收错误”);
关闭(SD);
关闭(sd);
出口(-1);
}
printf(“send()是`在这里输入代码`确定\n”);
关闭(SD);
关闭(sd);
出口(0);
}
如果您愿意

  • 添加缺少的
    #include
    语句和
  • 已更正
    main()
    的签名和
  • 在调用
    accept()

代码将接受一个正在连接的TCP客户端,并接收到至少一个字节,然后将结束。

您希望此调用如何
wait(100)要做什么?供参考: