[英]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.