栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux网络编程 | TCP客户端与服务器编程流程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux网络编程 | TCP客户端与服务器编程流程

前言

TCP协议下服务器与客户端编程流程。


提示:以下是本篇文章正文内容,下面案例可供参考

一、TCP是什么?

TCP是一种可靠的,面向连接的流式服务。

二、使用步骤

服务器端代码如下(示例):

```ser.c``

#include
#include
#include
#include
#include
#include
#include

int main()
{
	int sockfd=socket(AF_INET,SOCK_STREAM,0);//创建套接字
	assert(sockfd!=-1);
	
	struct sockaddr_in saddr,caddr;
	memset(&saddr,0,sizeof(saddr));
	saddr.sin_family=AF_INET//设置IPV4协议族
	saddr.sin_port=htons(6000);//设置端口号,需特别注意,1024以内的端口是著名端口,比如80是Web服务器端口,不能随便使用
	
	saddr.sin_addr.s_addr=inet_addr="127.0.0.1";
	
	int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));//绑定
	assert(res!=-1);
	
	listen(sockfd,5);//创建监听队列
	while(1)
	{
		int len=sizeof(caddr);
		int c=accept(sockfd,(struct sockaddr*)&caddr,&len);//接收连接
		if(c<0)//说明对方关闭
		{
			continue;
		}
		printf("c=%dn",c);
		char buff[128]={0};
		int n=recv(c,buff,127,0);//接受数据
		send(c,"ok",2,0);//发送数据
		close(c);//关闭连接
	}
}

```cli.c``

#include
#include
#include
#include
#include
#include
#include
int main()
{
	sockfd=sockrt(AF_INET,SOCK_STREAM,0);
	assert(sockfd!=-1);
	
	struct sockaddr_in saddr;//指定服务器的IP和端口
	memset(&saddr,0,sizeof(saddr));
	addr.sin_family=AF_INET//设置IPV4协议族
	saddr.sin_port=htons(6000);//设置端口号
	saddr.sin_addr.s_addr=inet_addr="127.0.0.1";

	int res=connect(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));//连接客户端
	assert(res!=-1);
	char buff[128]={0};
	printf("inputn");
	fgets(buff,127,stdin);//获取键盘输入数据
	send(sockfd,buff,strlen(buff),0);//发送
	memset(&buff,0,128);
	recv(sockfd,buff,127,0);//接受客户端消息
	printf("recv:%sn",buff);
	close(sockfd);//关闭连接
}
总结

这里只做了服务器与客户端进行一次交互的代码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号