服务器段代码
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<strings.h>
#include<arpa/inet.h>
#include<unistd.h>
int main(){
//服务器段socket描述符
int server_fd;
//客户端socket描述符
int client_fd;
//客户段地址描述符
struct sockaddr_in client_addr;
//创建socket连接
server_fd=socket(AF_INET,SOCK_STREAM,0);
socklen_t client_len;
if(server_fd==-1){
printf("server socket error\n");
}
//服务器地址描述符
struct sockaddr_in addr;
//清理初始化垃圾的addr
bzero(&addr,sizeof(addr));
//指定addr的协议
addr.sin_family=AF_INET;
//制定端口号
addr.sin_port=htons(8888);
//制定ip地址
addr.sin_addr.s_addr=htonl(INADDR_ANY);
int optval=1;
setsockopt(server_fd,SOL_SOCKET,SO_REUSEADDR,(const void *)&optval,sizeof(int));
//绑定 socket描述符和服务器地址描述符
if(bind(server_fd,(struct sockaddr *)&addr,sizeof(addr))==-1){
printf("server bind error\n");
}
//监听服务器socket
if(listen(server_fd,10)==-1){
printf("listen error\n");
}
printf("server listen\n");
bzero(&client_addr,sizeof(client_addr));
char content[1024];
//循环监听客户端请求
while(1){
// printf("fuck you\n");
//接受客户端的请求并和绑定客户的地址描述符
if((client_fd=accept(server_fd,(struct sockaddr *)&client_addr,&client_len))==-1){
printf("accept error\n");
}else{
printf("client_fd=%d",client_fd);
}
printf("accept succes\n");
//发送信息给客户端
send(client_fd,"fuck you\n",24,0);
//读取客户端的信息
read(client_fd,content,1024);
printf("content=%s\n",content);
}
}