?? tom.c
字號:
/******* 客戶端程序 tom.c ************/#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/socket.h>#define BUFSIZE 1024intmain (int argc, char *argv[]){ int sockfd; char buffer[BUFSIZE] = "I love you!"; struct sockaddr_in server_addr; int portnumber, nbytes; if (argc != 3) { fprintf (stderr, "Usage:%s hostname portnumber\a\n", argv[0]); exit (1); } if ((portnumber = atoi (argv[2])) < 0) { fprintf (stderr, "Usage:%s hostname portnumber\a\n", argv[0]); exit (1); } /* 客戶程序開始建立sockfd描述符 */ if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) == -1) { fprintf (stderr, "Socket Error:%s\a\n", strerror (errno)); exit (1); } /* 客戶程序填充服務(wù)端的資料 */ bzero (&server_addr, sizeof (server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_port = htons (portnumber); server_addr.sin_addr.s_addr = inet_addr (argv[1]); /* 客戶程序發(fā)起連接請求 */ if (connect (sockfd, (struct sockaddr *) (&server_addr), sizeof (struct sockaddr)) == -1) { fprintf (stderr, "Connect Error:%s\a\n", strerror (errno)); exit (1); } /* 發(fā)送“I love you!” */ if ((nbytes = send (sockfd, buffer, strlen (buffer), 0)) == -1) { fprintf (stderr, "Send Error:%s\n", strerror (errno)); exit (1); } memset (buffer, 0, sizeof (buffer)); /* 接收回復(fù) */ if ((nbytes = recv (sockfd, buffer, sizeof (buffer), 0)) == -1) { fprintf (stderr, "Read Error:%s\n", strerror (errno)); exit (1); } buffer[nbytes] = '\0'; printf ("%s\n", buffer); /* 結(jié)束通訊 */ close (sockfd); exit (0);}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -