• 大小: 51KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: GDB  Eclipse  

资源简介

linux 语音传输系统,在linux环境下运行。linux 语音传输系统,在linux环境下运行。linux 语音传输系统,在linux环境下运行。linux 语音传输系统,在linux环境下运行。linux 语音传输系统,在linux环境下运行。linux 语音传输系统,在linux环境下运行。

资源截图

代码片段和文件信息

//============================================================================
// Name        : AudioServer.cpp
// Author      : Fang
// Version     :
// Copyright   : All rights reserved by Mr.Fang.
// Description : Hello World in C Ansi-style
//============================================================================

#include 
#include 
#include 
#include 
#include 
#include “socketxx.h“
#include “ClientSession.h“
#include “AudioThread.h“

#include “sconfig.h“
#include “AudioServer.h“
#include “Utils.h“

SessionList slist;
struct ServerConfig g_config;
AudioServer::AudioServer() {

}

AudioServer::~AudioServer() {
servSock.close();
}
/** ClientThread
 * 客户端会话的线程
 */
void *AudioServer::ClientThread(void *args) {
int sock = (int)args;
printf(“Client thread %llu\n“ (unsigned long long)pthread_self());

ClientSession session(sock);
session.SetList(&slist);
session.SetConfig(&g_config);
session.Start();

return NULL;
}
/** AudioSession
 * 音频发送的线程
 */
void *AudioServer::AudioSession(void *args) {
AudioThread thread;
struct ServerConfig *conf = (struct ServerConfig *)args;

pthread_detach(pthread_self());
thread.SetList(&slist);
thread.SetConfig(conf);
thread.Start();
return NULL;
}

bool AudioServer::GetConfig(const char *path struct ServerConfig &conf) {
SConfig cf;
char buf[128];

if(!cf.ParseIniFile(path)) {
printf(“Parse config file %s failed\n“ path);
return false;
}
if(cf.GetNode(“SERVER“ “TCP_PORT“ buf) != NULL) {
conf.tcpPort = atoi(buf);
}
else {
conf.tcpPort = 7070;
}
if(cf.GetNode(“SERVER“ “UDP_PORT“ buf) != NULL) {
conf.udpPort = atoi(buf);
}
else {
conf.udpPort = 6000;
}
if(cf.GetNode(“SERVER“ “LOG_PATH“ conf.logPath) == NULL) {
strcpy(conf.logPath “./logs“);
}
if(cf.GetNode(“SERVER“ “AUDIO_DEVICE“ conf.audioDevice) == NULL) {
strcpy(conf.audioDevice “/dev/dsp“);
}
if(cf.GetNode(“SERVER“ “SERVER_IP“ conf.serverIP) == NULL) {
memset(conf.serverIP 0 sizeof(conf.serverIP));
}
return true;
}
int AudioServer::StartService(const char *configFile) {
pthread_t threadID;
int size;
int sock;

struct sockaddr_in clientAddr;

GetConfig(configFile g_config);
servSock.create(AF_INET);
if(!servSock.bind(NULL g_config.tcpPort)) {
perror(“Bind“);
return -1;
}
servSock.listen(10);
pthread_create(&threadID NULL AudioSession &g_config);

while(1) {
size = sizeof(clientAddr);
sock = servSock.accept((SA *)&clientAddr &size);
if(sock < 0) {
perror(“accept“);
continue;
}
if(pthread_create(&threadID NULL ClientThread (void *)sock) != 0) {
perror(“pthread_create“);
sleep(1);
continue;
}
}
return 0;
}

void IgnoreSignals() {
signal(SIGPIPE SIG_IGN);
signal(SIGHUP SIG_IGN);
}

int main(int argc char *argv[]) {
puts(“Start Audio Server“);
int ret;
pid_t pid;

if(IsProcRunning(“AudioServer.exe“)) {
printf(“Process is already running\n“);
return 0;
}
else {
SavePidFile((in

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11378  2011-11-06 15:11  AudioServer\.cproject

     文件       2417  2011-11-06 15:11  AudioServer\.project

     文件       3595  2011-11-06 15:11  AudioServer\AudioServer.cpp

     文件        933  2011-11-06 15:11  AudioServer\AudioServer.h

     文件       3385  2011-11-06 15:11  AudioServer\AudioThread.cpp

     文件        983  2011-11-06 15:11  AudioServer\AudioThread.h

     文件       8539  2011-11-06 15:11  AudioServer\Client.cpp

     文件       4318  2011-11-06 15:11  AudioServer\ClientSession.cpp

     文件       1867  2011-11-06 15:11  AudioServer\ClientSession.h

     文件        322  2011-11-06 15:11  AudioServer\common.h

     文件        521  2011-11-06 15:11  AudioServer\Makefile

     文件        855  2011-11-06 15:11  AudioServer\membuffer.h

     文件       1776  2011-11-06 15:11  AudioServer\play.cpp

     文件        875  2011-11-06 15:11  AudioServer\SessionList.cpp

     文件        653  2011-11-06 15:11  AudioServer\SessionList.h

     文件       6209  2011-11-06 15:11  AudioServer\socketxx.cpp

     文件       3622  2011-11-06 15:11  AudioServer\socketxx.h

     文件       1932  2011-11-06 15:11  AudioServer\utils\LoopQueue.cpp

     文件        641  2011-11-06 15:11  AudioServer\utils\LoopQueue.h

     文件        855  2011-11-06 15:11  AudioServer\utils\membuffer.h

     文件       2956  2011-11-06 15:11  AudioServer\utils\sconfig.cpp

     文件       1426  2011-11-06 15:11  AudioServer\utils\sconfig.h

     文件       1953  2011-11-06 15:11  AudioServer\utils\Utils.cpp

     文件        753  2011-11-06 15:11  AudioServer\utils\Utils.h

     文件       1124  2011-11-06 16:40  AudioServer\utils\.svn\entries

     文件          2  2011-11-06 15:11  AudioServer\utils\.svn\format

     文件       1932  2011-11-06 15:11  AudioServer\utils\.svn\text-base\LoopQueue.cpp.svn-base

     文件        641  2011-11-06 15:11  AudioServer\utils\.svn\text-base\LoopQueue.h.svn-base

     文件        855  2011-11-06 15:11  AudioServer\utils\.svn\text-base\membuffer.h.svn-base

     文件       2956  2011-11-06 15:11  AudioServer\utils\.svn\text-base\sconfig.cpp.svn-base

............此处省略80个文件信息

评论

共有 条评论