转载请著名出处,原文地址:https://blog.csdn.net/qq_44771694/article/details/121552991
- 前言
- 一、流程整体
- 二、程序
- 1.主线程用于打印接收到的信息
- 2.发送信息
- 总结
前言
没有过多的详细地介绍,一切以最简单的方式让你明白原理后,有了兴趣以后自己去看书,才能铭记于心
提示:以下是本篇文章正文内容,下面案例可供参考
一、流程整体1、创建一个套接字(相当于准备碗筷吃饭)
2、绑定(勺饭)
3、监听(坐到凳子上)
4、等待客户端连接(等父母一起吃)
5、信息交换(吃饭)
6、关闭(洗碗)
代码如下(示例):
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));
}
}
网络编程不难,先提高学习兴趣,慢慢来,就很容易弄懂了
总结 例如:转载请著名原作者,谢谢。



