两种网络编程API
- 套接口(sockets),有时称为“Berkeley套接口”,因为它源自Berkeley Unix。
- XTI(X/Open传输接口),它是对AT&T开发的传输层接口(TLI)经少量修改的产物。
大多数的网络应用系统包括两部分:客户(client)与服务器(server),两者是通过通信链接的,其中又涉及到了网络通信协议,TCP/IP协议族(又称网际协议族)
在实际生活中,客户与服务器无需处于一个局域网内通信,也可以通过路由器(router,广域网的架构设备)作为传输节点,进行局域网转接到广域网中去。最大的广域网是因特网。
include "unp.h"
int main(int argc.char * *argv)
{
int sockfd.n;
char recvline[MAXLINE+1];
struct sockadd_in servaddr;
if (argc ! = 2)
err-quit("usage: a.out<IPaddess>" );
if ( (sockfd= socket(AF_INET,SOCK_STREAM,0)<0)
err-sys("socket error" );
bzero(&servadd,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13);
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);
}