最简单的socket服务器与客户端

时间:2021-09-23 15:25:15

服务器:

//服务器
#include <stdio.h>
#include <netinet/in.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <errno.h>
#include <string.h>
int main()
{
int listenFd = socket (AF_INET,SOCK_STREAM,);//创建套接字 struct sockaddr_in serverAddr,clientAddr;//保存网络地址信息的结构体
memset (&serverAddr,,sizeof(serverAddr));
serverAddr.sin_family = AF_INET;//协议族/地址族
serverAddr.sin_port = htons(atoi(""));//保存端口号 atoi(字符串->整形"8080"->8080)
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");//IP地址 //绑定本地地址和端口
int ret = bind (listenFd,(struct sockaddr*)&serverAddr,sizeof(serverAddr));
ret = listen(listenFd,);//监听   int clientFd;
int cliLen = sizeof (clientAddr);
  while(){
   clientFd = accept(listenFd,(struct sockaddr*)&clientAddr,&cliLen);
   char buff[] = {};
   ret = read(clientFd,buff,);//接收数据,阻塞
     printf ("recv a msg:%s\n",buff);
    close (clientFd);
  }
close (listenFd);
return ;
}

客户端:

//客户端
#include <stdio.h>
#include <netinet/in.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <errno.h>
#include <string.h> int main()
{
int fd = socket(AF_INET,SOCK_STREAM,);//创建套接字
//链接服务器
struct sockaddr_in serverAddr;
memset (&serverAddr,,sizeof(serverAddr));
serverAddr.sin_family = AF_INET;//协议族
serverAddr.sin_port = htons(atoi(""));//端口号
serverAddr.sin_addr.s_addr = inet_addr ("127.0.0.1");//IP地址
int ret = connect(fd,(struct sockaddr*)&serverAddr,sizeof(serverAddr));
// socket描述符, 服务器地址, socket结构体长度 char buff[]={};
ret = read(,buff,);
ret = write(fd,buff,ret-);//去掉回车 // printf ("send a msg :hello\n"); close(fd);
return ;
}

相关文章