⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linuxserv.c

📁 linux source code for service and client this is used udp protocal
💻 C
字号:
//server.c代码如下:
#include "stdio.h"
#include "stdlib.h"
#include "errno.h"
#include "string.h"
#include "sys/types.h"
#include "netinet/in.h"
#include "sys/socket.h"
#include "sys/wait.h"
#define MYPORT 6000
#define BACKLOG 10
int main()
{
int sockfd,new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;
int i;
char c;
char buf[256];
int numbytes;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket create failed!");
exit(1);
}
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(MYPORT);
my_addr.sin_addr.s_addr=htonl(INADDR_ANY);
bzero(&(my_addr.sin_zero),8);
if (bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr))==-1)
{
perror("bind failed!");
exit(1);
}
if (listen(sockfd,BACKLOG)==-1)
{
perror("listen failed");
exit(1);
}
while(1)
{
sin_size=sizeof(struct sockaddr_in);
if((new_fd=accept(sockfd,(struct sockaddr*)&their_addr,&sin_size))==-1)
{
perror("accept failed!");
continue;
}
printf("server:got connection from %s\n",inet_ntoa(their_addr.sin_addr));

if(!fork()){
while(1)
{
printf("Send:");
for(i=0;(c=getchar())!='\n'&&i<256;i++)//对输入的数进行存储并放到缓存区,如果为视频数据则由采集模块拷贝内存区到该该缓存区,然后进行发送
buf[i]=c;

if(strcmp(buf,"exit")==0)
{
close(sockfd);
exit(0);
}
if(send(new_fd,buf,i,0)==-1)
{
perror("send failed!");
close(new_fd);
exit(0);
}
} 

}

}

close(new_fd);
while(waitpid(-1,NULL,WNOHANG)>0);
close(sockfd);
return 0;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -