我有以下程序(DGRAM套接字)從時間服務器中檢索時間。該程序不會按預期打印當前時間。使用SOCK_DGRAM從服務器獲取信息時的問題
#define DAYTIME_SERVER_PORT 13
int main(int argc, char *argv[])
{
int connectionFd, in;
struct sockaddr_in servaddr;
char buf[BUFSIZ];
connectionFd = socket(AF_INET, SOCK_DGRAM, 0);
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(DAYTIME_SERVER_PORT);
inet_pton(AF_INET,"time.mit.edu", &servaddr.sin_addr);
sendto(connectionFd,buf ,1, 0,(struct sockaddr_in *)&servaddr, sizeof(servaddr));
in = recv(connectionFd, buf, BUFSIZ, 0) ;
buf[in] = 0 ;
printf("Time is %s \n",buf);
close(connectionFd);
}
我的問題是 - 我在哪裏犯錯?任何代碼更改和寶貴的建議表示讚賞。我不知道如何使用recvform函數,因此嘗試了recv。我正在連接的白天服務器是time.mit.edu
請不要教孩子們不受保護的性行爲:) – 2010-12-09 04:12:01