linux 编程学习第一学期函数

推荐学习网站: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返回读取这行的长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值