gpt4 book ai didi

c - c 中的 GPRS socket

转载 作者:行者123 更新时间:2023-11-30 19:47:42 25 4
gpt4 key购买 nike

我想知道这段代码是否适用于从 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);
}

最佳答案

如果你愿意

  • 添加了缺少的#include语句并且
  • 更正了 main() 的签名和
  • 在调用 accept() 之前不会等待任何进程结束

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

关于c - c 中的 GPRS socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20794861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com