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

快速上手linux网络编程tcp服务器

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

快速上手linux网络编程tcp服务器

转载请著名出处,原文地址:https://blog.csdn.net/qq_44771694/article/details/121552991

文章目录
  • 前言
  • 一、流程整体
  • 二、程序
    • 1.主线程用于打印接收到的信息
    • 2.发送信息
  • 总结


前言

没有过多的详细地介绍,一切以最简单的方式让你明白原理后,有了兴趣以后自己去看书,才能铭记于心


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

一、流程整体

1、创建一个套接字(相当于准备碗筷吃饭)
2、绑定(勺饭)
3、监听(坐到凳子上)
4、等待客户端连接(等父母一起吃)
5、信息交换(吃饭)
6、关闭(洗碗)

二、程序 1.主线程用于打印接收到的信息

代码如下(示例):

int main(int argc, char const *argv[])
{
	char recvbuf0[1024];
	//pthread_t pt = 5;
	pthread_t pt2 = 6;
	//pthread_create(&pt,NULL,(void *)mythread_task,NULL);
	int mysock  , consock ;
	mysock = consock = -1;
	mysock = socket(AF_INET,SOCK_STREAM,0);
	struct sockaddr_in serveradd;
	memset(&serveradd,0,sizeof(serveradd));
	serveradd.sin_family = AF_INET;
	serveradd.sin_port = htons(7650);
	serveradd.sin_addr.s_addr = INADDR_ANY;
	bind(mysock , (struct sockaddr *)&serveradd , sizeof(serveradd));
	listen(mysock,3);
	socklen_t addrlen = sizeof(serveradd);
	while(1)
	{
		printf("7650 开始监听n");
		consock = accept(mysock, (struct sockaddr*)&serveradd , &addrlen);
		pthread_create(&pt2,NULL,(void *)send_data,&consock);
		if( consock != -1 )
		{
			printf("7650 连接成功n");
			while(1)
			{
				memset(recvbuf0 , 0  , sizeof(recvbuf0));
				if( read(consock,recvbuf0,sizeof(recvbuf0) )  > 0 )
				{					
					printf("port_7650 : %sn",recvbuf0);
				}
				else
				{
					close(consock);
					consock = -1;
					break;
				}
			}
		}
	}

	return 0;
}
2.发送信息

代码如下(示例):

void *send_data(void *arg)
{
	char sendbuf[1024] = {0};
	int consock = *(int *)arg;
	while(1)
	{
		memset(sendbuf,0,sizeof(sendbuf));
		scanf("%s",sendbuf);
		write(consock,sendbuf,strlen(sendbuf));
	}
}

网络编程不难,先提高学习兴趣,慢慢来,就很容易弄懂了


总结 例如:转载请著名原作者,谢谢。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/599290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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