linux服务器代码编写

1.socket原理

在这里插入图片描述

2.客户端与服务器端流程

在这里插入图片描述
在这里插入图片描述

3.tcp服务器通信步骤

1 创建套接字 socket
2 绑定 bind
3 监听 listen
4 提取 accept
5 读写 以下函数
在这里插入图片描述
6 关闭 close
在这里插入图片描述

4.部分代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sts/socket.h>
#include <unstd.h> 
int main(int argc,char *argv[]){
	//1.创建套接字
	int lfd=socket(AF_INET,SOCK_STREAM,0);
	//2.绑定,即绑定ip:inet_pton和端口:sin_port
	struct sockaddr_in addr;
	addr.sin_family=AF_INET;
	addr.sin_port=htons(...);//8xxx或者多少
	//addr.sin_addr.s_addr=INADDR_ANY;//0赋给他,绑定通配地址
	//不偷懒绑定固定一个
	inet_pton(AF_INET,"192.168...",&addr.sin_addr.s_addr);//服务器id(虚拟器id)
	int ret=bind(lfd,(struct sockaddr *)&addr,sizeof(addr));
	//if(ret<0){
	//	perror("");
	//	return 0;
	//}
	//3.监听:决定开启的部门热线
	listen(lfd,128)
	//4.提取 套接字 返回新的文件描述符,和客户端通信的套接字(已连接套接字)
	struct sockaddr_in cliaddr; 
	socklen_t len =sizeof(cliaddr);
	//拨打电话
	int cfd=accept(lfd,(struct sockaddr *)&cliaddr,&len);//客户端信息保存在加粗这
	char ip[16]="";
	printf("new client ip=%s port=%d\n",inet_ntop(AF_INET,&cliaddr.sin_addr.s_addr,ip,16),
ntohs(client.sin_port));//ip和端口
	//5.读写
	char buf[1024]="";
	while(1){
		//读键盘
		//bzero(buf,sizeof(buf));
		//int n=read(STDIN_FILENO,buf,sizeof(buf));
		//write(cfd,buf,n);
		//n=read(cfd,buf,sizeof(buf));
		//服务器给客户端发送
		write(cfd,"ashfs;nd;jdks",10);
		read(cfd,buf,sizeof(buf));
		printf("%s\n",buf);
	}
	//6.关闭
	close(lfd);//不能监听新的链接
	close(cfd);//与客户端通信断开
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值