导航:首页 > 编程语言 > net线程编程

net线程编程

发布时间:2024-12-17 07:14:34

⑴ C语言基础网络编程求助 如何实现多线程

#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>

void*thread(void*);
int client[5],i;

main()
{
int serverSocket= socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in server_addr;
struct sockaddr_in clientAddr;
int addr_len = sizeof(clientAddr);
//线程
pthread_t id;
pthread_attr_t attr;
pthread_attr_init(&attr);////////////////////////////////////////////////
pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
//创建地址
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family =AF_INET;
server_addr.sin_port = htons(5555);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
//绑定
bind(serverSocket,(struct sockaddr *)&server_addr,sizeof(server_addr));
listen(serverSocket,5);
for(i=0;i<5;i++)
{
client[i] = accept(serverSocket,(struct sockaddr *)&clientAddr,(socklen_t*)&addr_len);
pthread_create(&id,&attr,thread,(void *)&client[i]);/////////////////////////////////
pthread_join(id,NULL);
}
close(serverSocket);/////////////////////////
return 0;
}
void* thread(void* argv)
{
char buffer[200];
int a=i;
int s_c = *((int*)argv);///////////////////
while(1)
{
int n = recv(s_c,buffer,sizeof(buffer),0);
if(n > 0)
printf("客户端发过来的 : %s\n",buffer);
else
return;
}
close(s_c);
}

阅读全文

与net线程编程相关的资料

热点内容
清理文件加密软件 浏览:65
瘦吧大数据在APP哪里看 浏览:621
层次聚类算法最小距离 浏览:693
抖音视频加源码 浏览:531
运营影视源码 浏览:641
北京电信服务器托管云空间服务器 浏览:369
一般学编程有必要吗 浏览:753
机器人编程方法 浏览:992
表盘编程gt 浏览:9
java源代码阅读 浏览:736
程序员用什么键盘罗技 浏览:169
为什么安卓手机每天都要更新app 浏览:707
java怎么成为程序员 浏览:290
西门子s7200编程电缆怎么连接 浏览:532
下载网页中的pdf文件 浏览:91
音乐缓存文件夹的软件 浏览:396
Dkms编译打印机驱动 浏览:996
解压缩文件操作异常 浏览:557
等待代码编译时你会干嘛 浏览:494
单片机c语言中变量右移8位 浏览:82