//server.c
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<unistd.h>
#include<errno.h>
#include<string.h>
#include<stdlib.h>
#define SERV_PORT 3008
int sock_fd; //套接子描述符号
int recv_num;
int send_num;
int client_len;
char recv_buf[20];
char send_buf[20];
struct sockaddr_in addr_serv;
struct sockaddr_in addr_client;//服务器和客户端地址
void thread_send();
void thread_recv();
int main()
{
pthread_t ids1;
pthread_t ids2;
sock_fd = socket(AF_INET,SOCK_DGRAM,0);
if(sock_fd < 0)
{
perror("socket");
exit(1);
}
else
{
printf("sock sucessful\n");
}
//初始化服务器断地址
memset(&addr_serv,0,sizeof(struct sockaddr_in));
addr_serv.sin_family = AF_INET;//协议族
addr_serv.sin_port = htons(SERV_PORT);
addr_serv.sin_addr.s_addr = htonl(INADDR_ANY);//任意本地址
client_len = sizeof(struct sockaddr_in);
/*绑定套接子*/
if(bind(sock_fd,(struct sockaddr *)&addr_serv,sizeof(struct sockaddr_in))<0 )
{
perror("bind");
exit(1);
}
else
{
printf("bind sucess\n");
}
if(pthread_create(&ids1,NULL,(void *) &thread_send,NULL)!=0)
{
printf("线程创建错误\n");
exit(1);
}
if(pthread_create(&ids2,NULL,(void *) & thread_recv,NULL)!=0)
{
printf("线程创建错误\n");
exit(1);
}
while(1);
pthread_join(ids1,NULL);
pthread_join(ids2,NULL);
close(sock_fd);
return 0;
}
void thread_send()
{
while(1)
{
fgets(send_buf,sizeof(send_buf),stdin);
send_num = sendto(sock_fd,send_buf,sizeof(send_buf),0,(struct sockaddr *)&addr_client,client_len);
if(send_num < 0)
{
perror("sendto");
exit(1);
}
else
{
// printf("send sucessful\n");
}
}
}
void thread_recv()
{
while(1)
{
recv_num = recvfrom(sock_fd,recv_buf,sizeof(recv_buf),0,(struct sockaddr *)&addr_client,&client_len);
if(recv_num < 0)
{
printf("bad\n");
perror("again recvfrom");
exit(1);
}
else
{
recv_buf[recv_num]='\0';
printf("cleint said:%s",recv_buf);
}
}
}
linuxUDP下实现客户端与服务器端聊天模式
5星 · 超过95%的资源 需积分: 18 25 浏览量
2012-04-07
09:30:33
上传
评论 3
收藏 13KB RAR 举报
aqu_4068
- 粉丝: 1
- 资源: 18
最新资源
- 什么是移动应用开发-关于移动应用开发的相关介绍
- 第二组汇报 PPT.pptx
- 什么是大数据开发-相关介绍-关于大数据开发的相关介绍
- 什么是软件测试-相关介绍-关于软件测试的相关介绍
- 前端开发-什么是前端开发-关于前端开发的一些相关介绍
- Sora AI-关于文生视频的使用场景说明
- suno AI文生视频的相关教程和介绍使用
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页