gpt4 book ai didi

c - 如何选择服务器启动的端口(linux)?

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:52 25 4
gpt4 key购买 nike

我有这个简单的基于服务器 C 的代码。我想使用 argv 端口从命令行手动输入。我应该怎么做?因为我最近开始使用 linux,所以我不知道在哪里修改什么以及修改什么来更改默认端口。

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <time.h>

int main(int argc, char *argv[])
{
int listenfd = 0, connfd = 0;
struct sockaddr_in serv_addr;

char sendBuff[1025];
time_t ticks;

listenfd = socket(AF_INET, SOCK_STREAM, 0);
memset(&serv_addr, '0', sizeof(serv_addr));
memset(sendBuff, '0', sizeof(sendBuff));

serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(5000);

bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));

listen(listenfd, 10);

while(1)
{
connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);

ticks = time(NULL);
snprintf(sendBuff, sizeof(sendBuff), "%.24s\r\n", ctime(&ticks));
write(connfd, sendBuff, strlen(sendBuff));

close(connfd);
sleep(1);
}
}

最佳答案

您需要将argv[1]分配给serv_addr.sin_port

 serv_addr.sin_port = htons(atoi(argv[1]));

这样你就可以在配置端口启动你的服务器

你需要像这样运行服务器

 ./server port

关于c - 如何选择服务器启动的端口(linux)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293686/

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