【笔记】第一个socket程序

来源:互联网 发布:苹果5蜂窝数据打不开 编辑:程序博客网 时间:2024/05/17 06:35

int sockfd = socket(AF_INET, SOCK_STREAM, 0);
//创建一个socket,AF_INET是协议族,表示IPV4网络协议,
//SOCK_STREAM是指面向连接的稳定数据传输,即TCP协议
struct sockaddr_in servaddr;
//网际套接字地址结构
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13); /* htons将数的高位跟低位调换,特定格式*/
//将地址族置为AF_INET,端口号13(时间获取服务的端口)
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0);
//inet_pton将IP地址比如206.168.112.96装换成合适的格式,这里用来代替inet_addr,因为它支持IPv6
//<=0退出
if(connect(sockfd,(SA*)&servaddr,sizeof(srevaddr) < 0);
//建立与服务器的连接
//<0退出
int n;
while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
//n是read返回值,表示读取到的数据的字节数,等于0表示socket关闭了,小于0表示出错了。
//为什么放在循环里是因为不能确定一次read就能返回服务的整个应答
recvline[n] = 0; /* 读取后的数据末尾置0 */
if (fputs(recvline, stdout) == EOF);//将读到的数据输出
//error退出
}
if (n < 0);
//<0退出
exit(0);

0 0
原创粉丝点击