提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
二、具体步骤
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
int sock;
char str[]="192.168.250.100";
//创建流式套接字 socket()
if((sock=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket error");
exit(1);
}
//填充服务器的网络信息结构体
struct sockaddr_in sockadd;
memset(&sockadd,0,sizeof(sockadd));
sockadd.sin_family=AF_INET;
sockadd.sin_port=htons(8777);
sockadd.sin_addr.s_addr=inet_addr(str);
int sockadd_len=sizeof(sockadd);
//将套接字和服务器的网络信息结构体绑定 bind()
if(bind(sock,(struct sockaddr*)&sockadd,sockadd_len)==-1)
{
perror("bind error");
exit(1);
}
//将套接字设置成被动监听状态
if(listen(sock,10)==-1)
{
perror("bind error");
exit(1);
}
//阻塞等待客户端连接 accept()
int acceptfd;
if((acceptfd=accept(sock,NULL,NULL))==-1)
{
perror("accept error");
exit(1);
}
printf("有客户链接服务器\n");
//收发数据 read write
char s[128]={0};
read(acceptfd,s,128);
printf("收到的数据是->%s\n",s);
strcat(s,"--LC");
write(acceptfd,s,128);
//关闭套接字 close()
close(acceptfd);
close(sock);
return 0;
}