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

📄 sever.c

📁 在linux环境下
💻 C
字号:
#include "a.h"


int main()
{
	int sockfd;
	int new_fd;
	struct sockaddr_in addr,client_addr;
	int addr_len = sizeof(struct sockaddr);
	int numbytes;
	int id,i;
	char buf[80000];
	
	id = open("/dev/dsp", O_WRONLY);
  	if (id < 0)
  	{
  		perror("open sound device failed");
  		exit(-1);
  	}
        
	i = 0;
	ioctl(id, SNDCTL_DSP_RESET, (char *)&i);
	ioctl(id, SNDCTL_DSP_SYNC, (char *)&i);
	i = 8000;
	ioctl(id, SNDCTL_DSP_SPEED, (char *)&i);
	i = 1;
	ioctl(id, SNDCTL_DSP_CHANNELS, (char *)&i);
	i = 8;
	ioctl(id, SNDCTL_DSP_SETFMT, (char *)&i);
	i = 3;
	ioctl(id, SNDCTL_DSP_SETTRIGGER, (char *)&i);
	i = 3;
	ioctl(id, SNDCTL_DSP_SETFRAGMENT, (char *)&i);
	i = 1;
	ioctl(id, SNDCTL_DSP_PROFILE, (char *)&i);

	sockfd = creat_socket(AF_INET, SOCK_STREAM, 0);
	printf("TCP\n");

	memset(&addr, 0, sizeof(addr));
	addr.sin_family = AF_INET;
	addr.sin_port = htons(SEVERPORT);
	addr.sin_addr.s_addr = inet_addr("199.0.0.91");
	memset(addr.sin_zero,0,sizeof(addr.sin_zero));

	bind_socket(sockfd, &addr, addr_len);

	listen_connect(sockfd);

	new_fd = accept_connect(sockfd, &client_addr, &addr_len);

//	while (1)
//	{
		printf("begin!\n");
		memset(buf, 0, 80000);

		numbytes = recv(new_fd, buf, 80000, 0);
		printf("recvnum=%d\n", numbytes);
		if (numbytes == -1)
		{
			perror("recv");
			exit(-1);
//			continue;
		}

		write(id, buf, numbytes);
//	}

	close(sockfd);
	close(new_fd);
	close(id);

	return 0;			
}

⌨️ 快捷键说明

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