今天开始看unp volume1(Unix Network Programming)了,发现W.Richard Stevens真的很有风格,不管是apue还是unp,书里的程序第一行必定是书名,比如说#include "apue.h"和#include "unp.h",用头文件将打印函数,包裹函数封装起来无可厚非,但对我这种初学者来说,底层的东西变成了透明,写起程序来虽然会很方便,对程序的把握却又低了一个层次..

nup volume1第一章很简单,介绍了2个很容易的程序,一个服务端做时间伺服器,另一个客户端查询时间,数据的传输是从服务端到客户端的,为了练手,我照着程序写了个客户端传输数据给服务端的hello world,当然把#include "unp.h"去掉了..源码和编译好的程序在这..

记下各函数原型做个备忘.

socket

#include <sys/socket.h>
int socket(int family, int type, int protocol);

bind

#include <sys/socket.h>
int bind(int socket_fd, const struct sockaddr *myaddress, socklen_t address_length);

listen

#include <sys/socket.h>
int listen(int socket_fd, int backlog);

connect

#include <sys/socket.h>
int connect(int socket_fd, const struct sockaddr *server_address, socklen_t address_length);

accept

#include <sys/socket.h>
int accept(int socket_fd, struct sockaddr *client_address, socklen_t address_length);

recv

#include <sys/socket.h>
ssize_t recv(int socket_fd, void *buffer, size_t buffer_size, int flags);

send

#include <sys/socket.h>
ssize_t send(int socket_fd, const void *buffer, size_t buffer_size, int flags);

回头看看动态签名有没有效..