Unix网络编程学习笔记--UNIX网络编程--卷1:套接字联网API第一天

本书面向对象:编写的程序能使用称为 套接字(socket)的API进行彼此通信的人

每一张操作系统提供了大量的网络应用 程序: 网页浏览器、电子邮件客户端、文件共享服务器。

按照常规的划分方法把这些应用程序分为客户程序和服务器程序。

通过本书,我能够理解很多相应的例子。 常见的例子: web服务器是一个长时间运行的程序 daemon,他只响应来自网络请求时才发送网络消息。 协议的另一端是Web客户程序, 如浏览器。

第一章

理解网络应用:

客户---》服务器

一起服务器可以服务多个客户。

并且知道了客户与服务器使用CP在同一个以太网中通信

图:1.3

图1.4 正常互联网下的客户和服务器通信方式

1:了解了时间获取的客户程序

#include "unp.h"

int main(int argc , char **argv)

{

   int sockfd, n;
	char recvline[50+1];  // MAXLINE
	struct sockaddr_in servaddr;
	
	if (argc != 2)
	{
		err_quit("usage a. address");
	}
	
	if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
	{
		err_sys("sock error");
	}
	
	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port=htoms(13);   // daytime server
	if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
	{
		err_quit("inet_pton error for %s", argv[1]);
	}
	
	if (connect(sockfd, (SA*) &servaddr, sizeof(servaddr)) <0)
	{
		err_sys("connect error");
	}
	
	while( (n = read(sockfd, recvline, MAXLINE)) > 0)
	{
		 recvline[n]=0;
		 if (fputs(recvline, stdout)==EOF)
		 {
			 err_sys("fputs error");
		 }
	}
	if (n<0)
		 err_sys("read error");
	exit(0);
}

函数的精要写一遍能够理解出来,然后一些东西搞了一下协议无关性

理解套接字切实就是应用层和传输层传输数据用的。

2:时间获取的服务器程序

你可能感兴趣的:(Unix网络编程学习笔记--UNIX网络编程--卷1:套接字联网API第一天)