簡體   English   中英

套接字編程,ipv6客戶端程序不起作用

[英]socket programming , ipv6 client program not working

以下是我在本地計算機上的IPv6客戶端程序的代碼。 當我運行該程序時,它像Reading Mode一樣暫停,甚至不打印“ Start:”。 當我注釋socket()系統調用的行時,則僅繼續進行。

#include<stdio.h> 
#include<string.h>    
#include<sys/socket.h>
#include<arpa/inet.h> 
#include<unistd.h>
#include<errno.h>

int main( int argc, char *argv[])
{
    printf("Start:");
    int sock;
    char msg[20];
    struct sockaddr_in6 server;

    server.sin6_family=AF_INET6;
    server.sin6_port=htons(8888);
    inet_pton(AF_INET6, "127.0.0.1", &(server.sin6_addr) );


    sock=socket(AF_INET6, SOCK_STREAM , 0);
    if( sock == -1)
    {
     perror("Socket Creation Failed");
     return 1;
    }

    printf("Connecting");

   if( connect(sock, (struct sockaddr *)&server , sizeof(server)) < 0)
   {
    perror("Connection Failed");
    return 1;
   }

   if( read(sock, msg , sizeof(msg)) < 0)
   {
    perror("Reading Failed");
    return 1;
   }

   puts(msg);
   }

問題是inet_pton函數。 在以IPv6格式(0:0:0:0:0:0:0:0:1)傳遞回送地址后,程序可以正常運行。

您的程序卡在了阻塞的讀取(襪子...)處。 您需要添加每個具有printf \\n以將輸出刷新到STDOUT以查看帶有p​​rintf的輸出!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM