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

📄 server.c~

📁 通过客户机和服务器的方式来进行网络通信
💻 C~
字号:
/*******************************
*     ·þÎñÆ÷¶Ë³ÌÐò server.c    * 
********************************/ 
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <netinet/in.h>#include <fcntl.h>// µ÷ÓÃopen()¡¢close()º¯ÊýʱʹÓÃ
#define DEVICE_NAME     "/dev/led_driver"
/* ¶šÒå·¢¹â¶þŒ«¹ÜLED׎̬¡¡*/
#define LED_ON  0
#define LED_OFF 1
main(){ 
int sockfd,new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;
char buff[100];
//·þÎñÆ÷¶ËœšÁ¢TCPЭÒéµÄsockedÌלÓ×ÖÃèÊö·û 
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1)
{
	perror("socket"); 
	exit(1); 
}
printf("socket success!,sockfd=%d\n",sockfd);
//·þÎñÆ÷¶Ë³õÊŒ»¯sockaddrœá¹¹Ì壬°ó¶š2323¶Ë¿Ú 
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(2323);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
//°ó¶šÌלÓ×ÖÃèÊö·ûsockfd
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)
{
	perror("bind");
	exit(1);
}
printf("bind success!\n");
//ŽŽœšŒàÌýÌלÓ×ÖÃèÊö·ûsockfd
if(listen(sockfd,10)==-1)
{
perror("listen");
exit(1);
}
printf("listening....\n");
//·þÎñÆ÷×èÈûŒàÌýÌלÓ×Ö£¬Ñ­»·µÈŽý¿Í»§¶Ë³ÌÐòÁ¬œÓ 
while(1)
{
sin_size = sizeof(struct sockaddr_in);
//Èç¹ûœšÁ¢Á¬œÓ£¬œ«²úÉúÒ»žöȫеÄÌלÓ×Ö 
if((new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size))==-1)
{
perror("accept");
exit(1);
} 
//Éú³ÉÒ»žö×Óœø³ÌÀŽÍê³ÉºÍ¿Í»§¶ËµÄ»á»°£¬žžœø³ÌŒÌÐøŒàÌý 
if(!fork())
{//¶ÁÈ¡¿Í»§¶Ë·¢À޵ÄÐÅÏ¢ 
if((recv(new_fd,buff,strlen(buff),0))==-1)
{
perror("recv");
exit(1);
}else{int fd;fd = open(DEVICE_NAME, O_RDWR);while(1)
{
ioctl(fd,LED_OFF);
sleep(1);//ÐÝÃß1ÃëÖÓ
ioctl(fd,LED_ON);
sleep(1);//ÐÝÃß1ÃëÖÓ
}}
printf("%s\n",buff);
//œ«ŽÓ¿Í»§¶ËœÓÊÕµœµÄÐÅÏ¢ÔÙ·¢»Ø¿Í»§¶Ë
if(send(new_fd,"OK,This is Server.",strlen(buff),0)==-1)
perror("send");
/* ±ŸŽÎÍšÐÅœáÊø  */
close(new_fd);
exit(0);
} 
/* ÏÂÒ»žöÑ­»·  */
//   close(new_fd); 
} 
close(sockfd);
} 

/*
root@1[server]# ./server
server is run: Success 
  Hello!  Client connect.

root@2[client]# .client 192.168.1.99
  result: Welcome,This is Server.

#include <stdio.h>
void perror(const char *s)
   Êä³ö×Ö·ûŽ®s²¢ŒÓÉÏðºÅºÍ¿Õžñ£¬È»ºóÊÇÒ»žö»»ÐС£

#include <errno.h>

*/

⌨️ 快捷键说明

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