8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

C 套接字程序卡在 listen() 处

Laito 2月前

59 0

我正在尝试学习 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 中,代码类似,但我遇到了绑定错误

帖子版权声明 1、本帖标题:C 套接字程序卡在 listen() 处
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Laito在本站《sockets》版块原创发布, 转载请注明出处!
最新回复 (0)
  • \'我的代码似乎只是卡在 listen()\' 这是一种错觉。事实并非如此。请确保您打印并再次运行的每条消息末尾都有一个换行符 (\n)。

    – nm 的评论 可能是 AI

    他是对的

返回
作者最近主题: