网络编程

接口:     

int   write(fd,buf,sizeof(buf))  成功返回sizeof(buf)

int  read(fd,buf,sizeof(buf))  同上

perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。

//用来处理网络通信的地址

    struct sockaddr_in server_addr;
atoi(argv[1]) 字符转化为int

socket(AF_INET,SOCK_STREAM,0)

 int setsockopt(int s,int level,int optname,
const char *optval,int optlen);
s:标识一个套接字的描述符。
level:选项定义的层次;目前仅支持SOL_SOCKET和IPPROTO_TCP层次。
optname:需设置的选项。
optval:指针,指向存放选项值的缓冲区。
optlen:optval缓冲区长度。


SO_REUSEADDR BOOL 允许套接口和一个已在使用中的地址捆绑
 
    setsockopt(sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));
 bzero(&server_addr,sizeof(struct sockaddr_in));
    server_addr.sin_family = AF_INET;
    server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    server_addr.sin_port = htons(SERVER_PORT);
bind(sock_fd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr)) == -1
new_fd = accept(sock_fd,(struct sockaddr *)&(client_addr),&sin_size))==-1
printf("server:got connection from %s,port %d,socket %d
",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port),new_fd);




原文地址:https://www.cnblogs.com/countryboy666/p/11041587.html