我正在尝试学习 C 语言的套接字编程,并尝试在客户端和服务器之间建立基本的 TCP 连接,但在我的 server.c 中,我的代码似乎只是停留在 listen() 上。它没有
我正在尝试学习 C 语言套接字编程,并尝试在客户端和服务器之间建立基本的 TCP 连接,但是在我的 server.c 中,我的代码似乎只是停留在 listen() 处。它不会执行下一行,也不会返回错误消息。
#include<stdio.h>
#include<stdlib.h>
#include<arpa/inet.h>
#include<string.h>
#include<unistd.h>
int main(){
char *ip="127.0.0.1";
int port =5566;
int server_sock,client_sock;
struct sockaddr_in serveraddr,clientaddr;
socklen_t addr_size;
char buffer[1024];
int n;
server_sock=socket(AF_INET,SOCK_STREAM,0);
if(server_sock<0){
perror("[-]Socket error");
exit(1);
}
printf("[+] TCP server socket created\n");
memset(&serveraddr,'\0',sizeof(serveraddr));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=port;
serveraddr.sin_addr.s_addr=inet_addr(ip);
n=bind(server_sock,(struct sockaddr*)&serveraddr,sizeof(serveraddr));
if(n<0){
perror("[-]Bind error");
exit(1);
}
printf("[+] TCP SOCKET BOUND to port %d\n",port);
n=listen(server_sock,5);
if(n<0){
perror("listen error\n");exit(1);
}
printf("server listening");
while(1){
addr_size=sizeof(clientaddr);
client_sock=accept(server_sock,(struct sockaddr*) &clientaddr,&addr_size);
printf("[+]Client Connected.\n");
}
}
这是我当前的 server.c n=listen(server_sock,5);
它不会执行超过此行的代码。在我的 client.c 中,代码类似,但我遇到了绑定错误