簡體   English   中英

使用套接字unix連接到遠程服務器

[英]connect to remote server using sockets unix

在UNIX中,我要使客戶端程序連接到在另一台計算機上運行的服務器。 為此,我需要通過鍵盤輸入服務器的IP地址,然后在客戶端的connect()系統調用中傳遞該IP地址。 我嘗試將其讀取為字符串並通過它。但是它沒有用。 有什么特定的方法可以通過IP地址嗎?

假設使用IPv4,您要查找的函數是inet_addr ,它將將IPv4地址的字符串表示形式轉換為可以傳遞給各種套接字函數的數值:

int get_connection(const char *ip, int port)
{
  int sock;
  struct sockaddr_in sin;

  bzero(&sin,sizeof(sin));
  sin.sin_family = AF_INET;
  sin.sin_addr.s_addr = inet_addr(ip);
  sin.sin_port = htons(port);

  if ((sock=socket(AF_INET,SOCK_STREAM,0))==-1) {
    perror("Error creating socket");
    return -1;
  }
  if (connect(sock,(struct sockaddr *)&sin,sizeof(sin))==-1) {
    perror("Couldn't connect");
    close(sock);
    return -1;
  }
  return sock;
}

暫無
暫無

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

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