标签:
#include <sys/types.h>
#include <sys/socket.h>
函数原型:(创建一个套接口)
int socket(int family, // 协议类型,一般为AF_INET
int type, // socket类型:SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET
int protocol // 用来指定socket所使用的传输协议编号,通常设为0即可,表示缺省
); // 若无错误发生,socket()返回引用新套接口的描述字; 否则,返回INVALID_SOCKET错误
#include <sys/types.h>
#include <sys/socket.h>
函数原型:(通过给一个未命名套接口分配一个本地名字来为套接口建立本地捆绑(主机地址/端口号))
int bind(int sockfd, // socket描述符
struct sockaddr *my_addr, // 是一个指向包含有本机ip地址和端口号等信息的sockaddr类型的指针
int addrlen // 常被设为sizeof(struct sockaddr)
); // 返回:成功返回0,失败返回-1
#include <sys/socket.h>
函数原型:(创建一个套接字并监听申请的连接。仅适用于支持连接的套接口,如SOCK_STREAM类型的)
int listen(int sockfd, // socket()系统调用返回的socket描述符
int backlog // 指定在请求队列中的最大请求数,进入的连接请求将在队列中等待accept()它们。
); // 如无错误发生,返回0;否则返回-1
#include <sys/types.h>
#include <sys/socket.h>
函数原型:
int connect(int sockfd, struct sockaddr *serv_addr, int addrlen)
sockfd: 目的服务器的socket描述符
serv_addr:包含目的机器ip地址和端口号的指针
addrlen:sizeof(struct sockaddr)
#include <sys/types.h>
#inlcude <sys/socket.h>
函数原型:
int accept(int sockfd, void *addr, int addrlen)
sockfd:是被监听的socket描述符
addr:通常是一个指向sockaddr_in变量的指针,该变量用来存放提出连接请求服务的主机的信息
addrlen:sizeof(struct sockaddr_in)
#include <sys/socket.h>
函数原型:
int send(int sockfd, const void *msg, int len, int flags);
sockfd:用来传输数据的socket描述符
msg:要发送数据的指针
flags: 0
#include <sys/types.h>
#include <sys/socket.h>
函数原型:
int recv(int sockfd, void *buf, int len, unsigned int flags)
sockfd:接收数据的socket描述符
buf:存放数据的缓冲区
len:缓冲的长度
flags:0
read() write()
int read(int fd, char *buf, int len)
int write(int fd, char *buf, int len)
shutdown()
close(sockfd)
int shutdown(int sockfd, int how)
#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void *buf, size_t nbytes, int flags, struct sockaddr *from, socklen_t *addrlen);
ssize_t sendto(int sockfd, const void *buff, size_t nbytes, int flags, const struct sockaddr *to, socklen_t *addrlen);
// 成功则返回读、写的字节数,出错则为-1。
第一个参数sockfd:描述符;
第二个参数buff:指向读入或写出的缓冲区的指针;
第三个参数nbytes:读写字节数;
第四个参数flags:调用操作方式;
第五个参数from/to:指向数据报发送者或接收者的协议地址(如IP地址和端口号)的套接字地址结构;
第六个参数addrlen:from/to参数的大小。
int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen); // 获取与某个套接字关联的本地协议地址
int getpeername(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen); // 获取与某个套接字关联的外地协议地址
#include <sys/select.h>
#include <signal.h>
signal(参数1,参数2);
参数1:处理的信号。系统的信号一般为宏定义。
参数2:处理的方式(是系统默认还是忽略还是捕获)。
例如signal(SIGINT ,SIG_ING);
SIG_ING 代表忽略SIGINT信号,SIGINT信号代表由InterruptKey产生,通常是CTRL +C 或者是DELETE 。发送给所有ForeGround Group的进程。
标签:
原文地址:http://www.cnblogs.com/LarryGen/p/5461620.html