简单的Linux服务器端代码

#include<stdio.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<fcntl.h>

#include<unistd.h>
#include<sys/epoll.h>
#include<string.h>
#include <stdlib.h>

#define BUFFER_LENGTH 128
int main(){

int listenfd = socket(AF_INET,SOCK_STREAM,0);
if(listenfd == -1) return -1;

struct sock_addr_server ser_addr;
ser_addr.sin_family = AF_INET;
ser_addr.sin_addr.s_addr = htonl(INADDR_ANY);
ser_addr.sin_port = htons(9999);

if (-1 == bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))) {
		return -2;
}
listen(listenfd,10);
// 10代表同时连接的队列的最大长度

// 设置非阻塞
int flag = fcntl(listenfd,F_GETFL,0);
flag | = O_NONBLOCK;
fcntl(listenfd,F_SETFL,flag);


int connfd = accept(listenfd,(struct sockaddr*)&ser_addr,&len);
//int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
while (1) {
	
	unsigned char buffer[BUFFER_LENGTH] = {0};
	// 接收,发送
	int ret = recv(clientfd, buffer, BUFFER_LENGTH, 0);
	if (ret == 0) {
		close(clientfd);
		break;
		
	}
	printf("buffer : %s, ret: %d\n", buffer, ret);

	ret = send(clientfd, buffer, ret, 0); // 

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值