网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
//accept 和recv,注意接收字符串添加结束符'\0'
while(1)
{
if( (connfd = accept(listenfd, (struct sockaddr \*)NULL, NULL)) == -1) {
printf(" accpt socket error: %s (errno :%d)\n",strerror(errno),errno);
return 0;
}
n = recv(connfd,buff,MAXLINE,0);
buff[n] = '\0';
printf("recv msg from client:%s\n",buff);
close(connfd);
}
close(listenfd);
return 0;
}
**客户端**:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define MAXLINE 4096
int main(int argc, char**argv)
{
int sockfd,n;
char recvline[4096],sendline[4096];
struct sockaddr_in servaddr;
if(argc !=2)
{
printf("usage: ./client <ipaddress>\n");
return 0;
}
//创建socket
if( (sockfd = socket(AF_INET,SOCK_STREAM,0)