|
Hi,
I have try out the steps you provide but still cannot work. The PC with server and client running on it is working as the user name is display at the server. But the other PC with only client running on it is not working. It still show unable to connect to server. Both of the PC is connected on the same LAN.
With that fail, I try to compile the server and client on both PCs. But the server have a .cpp file missing. It is the custom.cpp file missing. Can this be the problem why the problem exist?
Hope to hear from you soon
Thanks again!!!
|
|
|
|
|
hi..this is a great program
but i want to know about handling the silence suppression, i mean that if user not talk or silence...
are the packet of data is still send by the active user or silence user????
thanks b4..
|
|
|
|
|
HI.
I have not handled silence compression in this program.
I wanted to such a thing...
For this we have to analyze the frequency contents of the raw data. This comes under Digital signal processing.
DSP. I don't know how to do it with raw data..
If you come to know about this..Please let me know...
|
|
|
|
|
hi...
yups...we have to analyze the fequency contenst of the raw data.
same with me, i don't know about the digital signal processing.
but i've already know that my senior in STT Telkom Bandung Indonesia had try this(voice conference with silence suppression)....
but the use bandwidth percentage is only 46 %, peer to peer with rtp (real time protokol)
i will try to ask him.
bye
|
|
|
|
|
I have a IHTMLDocument2 pointer for the page I care for, I want to get the edit ctrl in the page which has focus(no a edit ctrl window, but just something same as bbs's text-inputer). I try IHTMLDocument2::activeElement Property. but It doesn't seem work. Help me!!!
|
|
|
|
|
can you give me some introdution for upgrade the program,
in this, you made a poiter list on server to halde clients, how to use multi thread instead ptrlist
thank you
|
|
|
|
|
Hi...
In the OnAccept method of socket class in the server program you can include code for multithereading.Just create the thread by passing the client socket as the argument to the thread. You can write the code in the client thread that will deal with client.
..
OnAccept( ...)
{
//Create thread by passing socket argument of the client....
}
|
|
|
|
|
Hi, I compiled the server successfully but client compilation yield the following errors:
c:\voicechat\Client\Client\WriteSound.cpp(17): error C2440: 'static_cast' : cannot convert from 'LRESULT (__thiscall WriteSound::* )(WPARAM,LPARAM)' to 'void (__thiscall CWinThread::* )(WPARAM,LPARAM)'
and about 20 errors like that.
any hint?
Regards,
Emilio
Emilio
|
|
|
|
|
Same problems, looks like the problem is I am using VisualStudio 7.0, and this version improves compiler accuracy about LRESULT (your function´s return values)and void (CWinThread´s function´s return values)
|
|
|
|
|
WriteSound.cpp(17) : error C2440: 'static_cast' : impossible to convert from 'LRESULT (__thiscall WriteSound::* )(WPARAM,LPARAM)' to 'void (__thiscall CWinThread::* )(WPARAM,LPARAM)'
with VC 7
|
|
|
|
|
I've searched arround and found this solution:
http://www.experts-exchange.com/Programming/Programming_Languages/MFC/Q_20280310.html?query=ON_THREAD_MESSAGE+C2440&clearTAFilter=true
I can compile the client successfully in VC7 without problem. ^^
|
|
|
|
|
dear vanvancela
i am facing the same problem in compiling the client in vc7.if u have the solution then plz mail me your client copy which has no errors in vc7.
|
|
|
|
|
HI...
This is client server program. You can test this program on the network or on the single host.
First start the server and then start the client.
At the client side give the server name as localhost and port same as that of server and type some username.
Copy client.exe to diff folder and then start another client.
Fill the same details as above. type diff username........
Click on the start button ...and then speak on the microphone...
Enjoy.........
|
|
|
|
|
first thing i want to know is . is this program just for networks or it can sldo be used on the internet?
secon thing , i downloaded the program from the like above that demo 168 kb
and ther is not any file in that that is something.exe al the files has a wierd extentions so i don't know what to do.
i have another question is ther any body knows how to make a voice chat server on my website ?
thanks
|
|
|
|
|
I read yr project, but it's send msg to all user by
for () {}
how can i change it became send with multicast???
and i want the client click on clientlist to chat with it
can you help me
thank you
|
|
|
|
|
you can refer the article by me....in the same section
" voice chat using multicasting technique"
this will deal with multicasting and tell you how to send the message to group at once
|
|
|
|
|
hi nageshwar...i downloaded and checked the code.....it is nice piece of code...i have voted your article excellent(5)
But i have a problem i cannot view the class information. when i open the class wizard , it is asking to create a new class. i dont know whether it is my fault. i am doing my project on voip i will mail to you in your yahoo address...bye for now......kiran paul
|
|
|
|
|
when i build the sample application the error
unsolved external error LNK2001: unresolved external symbol __endthreadex
what is it's cause plz help
Ahmed A. Korany (DevMan
|
|
|
|
|
Hi...
When you change the project settings to release..other setting must be changed...
go to project settings and then select use mfc in static library / use mfc in shared dll.
next you need to include lib..
go to link tab...
in the object library modules..
type the following library..
winmm.lib
|
|
|
|
|
Hi!
Could you tell me how to buid a project using client/server.
i want write a simple server, and client
when a client connect to server (only connect)the server
print a message to other client
but i can't write it in java,
could you teach me.
Thank you
|
|
|
|
|
i have a problem in your voice chat program i want to change the pcm waveform to adpcm and i don't know how to add this code to your program.
Please teach my how to add this code for your project thank you for your kindness .
-------------------------------------------------------------------------
#include "adpcm.h"
#include <stdio.h> /*DBG*/
#ifndef __STDC__
#define signed
#endif
/* Intel ADPCM step variation table */
static int indexTable[16] = {
-1, -1, -1, -1, 2, 4, 6, 8,
-1, -1, -1, -1, 2, 4, 6, 8,
};
static int stepsizeTable[89] = {
7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
50, 55, 60, 66, 73, 80, 88, 97, 107, 118,
130, 143, 157, 173, 190, 209, 230, 253, 279, 307,
337, 371, 408, 449, 494, 544, 598, 658, 724, 796,
876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066,
2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358,
5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899,
15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767
};
void
adpcm_coder(indata, outdata, len, state)
short indata[];
char outdata[];
int len;
struct adpcm_state *state;
{
short *inp; /* Input buffer pointer */
signed char *outp; /* output buffer pointer */
int val; /* Current input sample value */
int sign; /* Current adpcm sign bit */
int delta; /* Current adpcm output value */
int diff; /* Difference between val and valprev */
int step; /* Stepsize */
int valpred; /* Predicted output value */
int vpdiff; /* Current change to valpred */
int index; /* Current step change index */
int outputbuffer; /* place to keep previous 4-bit value */
int bufferstep; /* toggle between outputbuffer/output */
outp = (signed char *)outdata;
inp = indata;
valpred = state->valprev;
index = state->index;
step = stepsizeTable[index];
bufferstep = 1;
for ( ; len > 0 ; len-- ) {
val = *inp++;
/* Step 1 - compute difference with previous value */
diff = val - valpred;
sign = (diff < 0) ? 8 : 0;
if ( sign ) diff = (-diff);
/* Step 2 - Divide and clamp */
/* Note:
** This code *approximately* computes:
** delta = diff*4/step;
** vpdiff = (delta+0.5)*step/4;
** but in shift step bits are dropped. The net result of this is
** that even if you have fast mul/div hardware you cannot put it to
** good use since the fixup would be too expensive.
*/
delta = 0;
vpdiff = (step >> 3);
if ( diff >= step ) {
delta = 4;
diff -= step;
vpdiff += step;
}
step >>= 1;
if ( diff >= step ) {
delta |= 2;
diff -= step;
vpdiff += step;
}
step >>= 1;
if ( diff >= step ) {
delta |= 1;
vpdiff += step;
}
/* Step 3 - Update previous value */
if ( sign )
valpred -= vpdiff;
else
valpred += vpdiff;
/* Step 4 - Clamp previous value to 16 bits */
if ( valpred > 32767 )
valpred = 32767;
else if ( valpred < -32768 )
valpred = -32768;
/* Step 5 - Assemble value, update index and step values */
delta |= sign;
index += indexTable[delta];
if ( index < 0 ) index = 0;
if ( index > 88 ) index = 88;
step = stepsizeTable[index];
/* Step 6 - Output value */
if ( bufferstep ) {
outputbuffer = (delta << 4) & 0xf0;
} else {
*outp++ = (delta & 0x0f) | outputbuffer;
}
bufferstep = !bufferstep;
}
/* Output last step, if needed */
if ( !bufferstep )
*outp++ = outputbuffer;
state->valprev = valpred;
state->index = index;
}
void
adpcm_decoder(indata, outdata, len, state)
char indata[];
short outdata[];
int len;
struct adpcm_state *state;
{
signed char *inp; /* Input buffer pointer */
short *outp; /* output buffer pointer */
int sign; /* Current adpcm sign bit */
int delta; /* Current adpcm output value */
int step; /* Stepsize */
int valpred; /* Predicted value */
int vpdiff; /* Current change to valpred */
int index; /* Current step change index */
int inputbuffer; /* place to keep next 4-bit value */
int bufferstep; /* toggle between inputbuffer/input */
outp = outdata;
inp = (signed char *)indata;
valpred = state->valprev;
index = state->index;
step = stepsizeTable[index];
bufferstep = 0;
for ( ; len > 0 ; len-- ) {
/* Step 1 - get the delta value */
if ( bufferstep ) {
delta = inputbuffer & 0xf;
} else {
inputbuffer = *inp++;
delta = (inputbuffer >> 4) & 0xf;
}
bufferstep = !bufferstep;
/* Step 2 - Find new index value (for later) */
index += indexTable[delta];
if ( index < 0 ) index = 0;
if ( index > 88 ) index = 88;
/* Step 3 - Separate sign and magnitude */
sign = delta & 8;
delta = delta & 7;
/* Step 4 - Compute difference and new predicted value */
/*
** Computes 'vpdiff = (delta+0.5)*step/4', but see comment
** in adpcm_coder.
*/
vpdiff = step >> 3;
if ( delta & 4 ) vpdiff += step;
if ( delta & 2 ) vpdiff += step>>1;
if ( delta & 1 ) vpdiff += step>>2;
if ( sign )
valpred -= vpdiff;
else
valpred += vpdiff;
/* Step 5 - clamp output value */
if ( valpred > 32767 )
valpred = 32767;
else if ( valpred < -32768 )
valpred = -32768;
/* Step 6 - Update step value */
step = stepsizeTable[index];
/* Step 7 - Output value */
*outp++ = valpred;
}
state->valprev = valpred;
state->index = index;
}
---------------------------------------------------------------------------
|
|
|
|