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

📄 fooserver.c.bak

📁 基于socket的简单通讯程序
💻 BAK
字号:
#include	<sys/socket.h>
#include	<arpa/inet.h>
#include	<errno.h>
#include	<stdio.h>
#include	<sys/types.h>
#include	<stdlib.h>	
#include	<string.h>	
#include	<unistd.h>	

#define BUFLEN 1440*576


#define SOCKADDR struct sockaddr

void initbuf(char *,unsigned long);

int
main(int argc,char ** argv)
{
	int listenfd,
		echofd;
	struct sockaddr_in sockaddr_echo,
					   sockaddr_cli;
					   
	char * sendbuf;
	int socklen,n;
	
	sendbuf=(char *)malloc(sizeof(char)*BUFLEN);
	
	initbuf(sendbuf,BUFLEN);
	listenfd=socket(AF_INET,SOCK_STREAM,0);
	if(listenfd<0){
		fprintf(stderr,"socket create error!\n");
		exit(1);
	}
	memset(&sockaddr_echo,0,sizeof(struct sockaddr_in));
	sockaddr_echo.sin_family=AF_INET;
	sockaddr_echo.sin_port=htons(7);
	sockaddr_echo.sin_addr.s_addr=htonl(INADDR_ANY);
	
	if(bind(listenfd,(struct sockaddr*)&sockaddr_echo,sizeof(struct sockaddr_in))<0){
		printf("bind error!\n");
		exit(2);
	}
	listen(listenfd,5);
	socklen=sizeof(SOCKADDR);
	for( ; ; ){
		echofd=accept(listenfd,(SOCKADDR *)(&sockaddr_cli),&socklen);
		printf("Connect come from %s %d\n",
				inet_ntoa(sockaddr_cli.sin_addr),ntohs(sockaddr_cli.sin_port));
/*		while((n=read(echofd,recmsg,BUFLEN))>0){
			recmsg[n]=0;
			printf("client sent:%s",recmsg);
			write(echofd,recmsg,n);
		}
*/
		n=write(echofd,sendbuf,BUFLEN);
		if(n==-1){
			fprintf(stderr,"write error in server socket!\n");
			exit(3);
		}
		printf("client %s closed!\n",inet_ntoa(sockaddr_cli.sin_addr));
	}
	
}

void initbuf(char *buf,unsigned long len)
{
/*	int i;
	for(i=0;i<1440;i++)
		buf[i]=i*256/1440;
*/
	int i,j;
	for(i=0;i<1440;i++)
		for(j=0;j<576;j++)
			buf[i*576+j]=i*256/1440;		
}

⌨️ 快捷键说明

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