推荐学习网站:oj.leetcode.com
socket通信函数
#include <sys/types.h>
#include <sys/socket.h>
sockfd = socket(AF_INET,SOCK_STREAM,0);
//把这个套接字绑定本定的地址和端口
seraddr.sin_family= AF_INET;
seraddr.sin_port = htons(50000);
seraddr.sin_addr.s_addr = htonl(INADDR_ANY);
bzero(&seraddr,sizeof(seraddr));
bind(sockfd,(struct sockaddr *)&seraddr,sizeof(struct sockaddr));
//对绑定好的服务器端口进行监听
listen(sockfd,10);
//处于接受等待状态,
acceptfd = accept(sockfd,&cliaddr,&len);
cliaddr 用来接受客户端发来的地址和端口信息,len表示这个接受结构体的大小,acceptfd表示连接套接字,后面与客户端的通信就靠这个连接套接字,sockfd表示本地监听套接字
//客户端去连接客户端
clientfd = socket(AF_INET,SOCK_STREAM,0);
bzero(&seraddr,sizeof(seraddr));
inet_aton(argv[1],&seraddr);//argv[1]表示要连接的服务端地址
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(50000);
connect(clientfd,(struct sockaddr *)&cliaddr,socklen);//连接错误返回小于0的值
getsockname(connfd, (struct sockaddr *)&serv, &serv_len);
getpeername(connfd, (struct sockaddr *)&guest, &guest_len);
inet_ntop(AF_INET, &serv.sin_addr, serv_ip, sizeof(serv_ip));
inet_ntop(AF_INET, &guest.sin_addr, guest_ip, sizeof(guest_ip));
printf("host %s:%d guest %s:%d\n", serv_ip, ntohs(serv.sin_port), guest_ip, ntohs(guest.sin_port));//打印本地ip地址和客户端的地址以及各自的端口号
recv(acceptfd,buf,10,0)//接收数据,acceptfd表示连接通信的套接字,buf用来处理的缓冲区,10表示大小,flag 一般为 0
send(acceptfd,buf,10,0)
文件处理函数
strncmp,strcpy,strcmp
int strncmp(char *str1, char *str2, int maxlen); //此函数功能即比较字符串str1和str2的前maxlen个字符。
strstr,strchr
char *strchr(char *s,char c); //查找字符串s中首次出现字符c的位置, 返回首次出现c的位置的指针,如果s中不存在c则返回NULL
char * strstr(char * str1,char * str2); //在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。
ssize_t read;
FILE *fp;
size_t len=0;
char *line=NULL;
(read=getline(&line,&len,fp))//read返回读取这行的长度