我使用C语言创建了一个Linux网络应用程序,它基本可以工作。
不过每次运行它时,它都会绑定到一个新的随机端口。
//Create Socket
int socket_desc;
socket_desc=socket(AF_INET,SOCK_STREAM,0);
if (socket_desc==-1)
perror("Create socket");
struct sockaddr_in address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
//Port defined Here:
address.sin_port=htons(81);
//Bind
bind(socket_desc,(struct sockaddr *)&address,sizeof(address));
listen(socket_desc,32);
//Do other stuff (includes accepting connections)
您可以看到,我已经指定了端口,但它仍然选择一个可用的随机端口。
如果有任何帮助或链接到一个好的教程,将不胜感激。
strace
进行调试。 - Zang MingJie-1
。然后,您可以检查errno
来了解错误原因,使用例如strerror
来获得一个可打印的错误字符串,或者使用perror
直接打印出来。 - Some programmer dudeif (bind(...) == -1) ERROR
- Nikolai Fetissovsocket
调用做到了这一点。只需继续为其他函数做同样的事情即可。此外,我建议您查看函数手册页面。可以在这里找到一组在线手册页面。 - Some programmer dude