借鉴总结子http://blog.csdn.net/hguisu/article/details/7445768
socket编程主要用于网络之间进行进程通信。tcp ip是一个协议族,http是一个上层应用层的协议。而socket是一个封装tcp层的一个api,它不止可以用于这个协议之上,还可以其他接口。
- scoket套接字
- socket描述符
套接字描述符 0输入,1输出,2错误输出。系统为每一个进程维护一个文件描述表。表里有顺序,而0 1 2 3等为对应文件指针在表中的位置。所以 创建socket时候只要返回这么一个小整数就可以了。
- socket连接类似于打电话。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
总结,socket有几种函数,socket,bind,listen ,connect accept. close 特有用来对付
- int socket(int protofamily, int type, int protocol);//返回sockfd
- int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
- int listen(int sockfd, int backlog);
- int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
- int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); //返回连接connect_fd