****************************
华软源码:http://www.hur.cn
****************************
Speak Freely Development Log
by Brian C. Wiles -- brian@brisoft.com
Originally by John Walker -- kelvin@fourmilab.ch
23 August 1995
Initial announcement of Speak Freely Release 5.0.
24 August 1995
Peter Claus Gutman (pgut01@cs.auckland.az.nz), developer of a very
nice encryption library, wrote to suggest his library might prove
useful. In the source code for the library, I found a clever 80x86
assembly-language implementation of IDEA, made freely available by its
author, who is identified in the source code only as "Bryan". Whoever
you are, Bryan, great piece of work! If you, or somebody who knows who
you are, happens to read this, let me know so I can give complete
attribution.
I integrated the assembly language loop into IDEA\IDEA.C, modifying it
slightly to work with Microsoft Visual C's inline assembler, so you
don't need a separate assembler to take advantage of the optimised
code. Whether the assembler or original C code is used depends upon
whether USE_ASM is defined, so you can use the original loop for
reference or if, for example, your compiler doesn't support inline
assembly code or is incompatible with the way Microsoft do it.
Enabling the assembly language code increased the speed of IDEA encryption
and decryption on my 486/50 machine from 152,000 bytes per second to 242,000
bytes per second--well worth the trouble of integrating the code.
30 August 1995
Completed a massive revision to avoid all packet fragmentation
and thus work with WINSOCK drivers such as Trumpet WINSOCK. The
changes were so great and ubiquitous there's no point in trying
to describe them. In debugging the changes, one of the mysteries
that has been dogging me was finally solved--the random hangs,
loss of synchronism, failure to release resources, etc. etc. etc.
were the result of Windows discarding messages to the main window
as a result of overflows of the default 8 message queue. Speak Freely
juggles a lot of balls in the air at once, and it's very easy to
hit this limit. At initialisation time, we now try to expand the
queue to its maximum size of 120 messages or whatever lower maximum
the system we're running on supports.
Added the "Extended Status" (Propeller Head) dialogue.
Made compression modes global rather than per-connection. This
means compression only has to be done once, which speeds up
party line transmissions. The change is necessary in any case
so that packet size can be optimised.
1 September 1995
Update release 5.1.
8 September 1995
CreateSocket() in UTILITY.C contained a "defensive bind()" to
address zero as a work-around for some defective WINSOCK implementations.
Unfortunately, this work-around causes other TCP/IP stacks, including
that built into Windows NT to fail. I made the nugatory bind conditional
on a new Options/Workarounds/Always Bind Socket menu item which is, of
course, saved in the .INI file.
Update release 5.1a.
9 September 1995
Discovered that the reason the socket write was failing on Windows NT
and Windows 95 is that Microsoft's built-in WINSOCK, entirely
incompatible with Unix and every other WINSOCK I have encountered,
refuses sendto() once a datagram socket has been connect()ed. The
sole function of connect() on a datagram socket is to specify a
default address so subsequent writes can be done with send() (or,
on Unix, write()), and there is no prohibition of overriding this
default address with a subsequent sendto(). The WINSOCK specification
nowhere mentions such a restriction as a Windows-specific change. I
modified the socket write code in CONNECT.C and the loop-back socket
write in FRAME.C to first try sendto(). If it fails, send() is then
tried and if that works all subsequent socket writes for the rest of
the session are done using send(). This code has been verified to work
on both Windows NT and Windows 95 (first customer shipment edition).
Special thanks to John Deters (jad@DHDSC.MN.ORG) who both identified the
source of this problem on Windows NT and tested innumerable versions
slowly converging toward the actual fix.
Added an item to the Propeller Head dialogue to indicate whether sendto()
or send() is being used to write to outbound sockets; it's "Sending with"
in the "Network" box.
Tested with the WINSOCK implementation included with Sun PC-NFS 5.1. Works
fine.
Update release 5.1b.
10 September 1995
After last week's experience I decided to indulge in some preemptive
workarounds for crummy network and sound card drivers which fail in
obvious ways which haven't bitten me yet. I expanded the Options/Workarounds
menu to include:
Audio
Assume Half-duplex
Assumes the sound card is half-duplex without requiring it
to fail an output open while input is open. Accommodates
cards which are actually half-duplex but don't indicate this
by failing a simultaneous input and output open. Also handles
cards which crash the system or application when you try to
open them in full-duplex mode.
Assume 11025 Samples/sec
Assumes the card is capable only of 11025 samples per second
mode, not our preferred 8000 samples per second. Permits
correct operation on cards which don't fail when opened with
a sample rate of 8000 samples per second but which can't
actually run at that rate.
Network
Always Bind Socket
As before; bind outbound sockets, even though there's no need
to do so.
Never Connect Outbound Socket
Don't connect() the output sockets. This implies we'll always
use sendto() to write to those sockets. Clears "Use send(), Not
sendto()" mode if set.
Use send(), Not sendto()
Always use send() to write to outbound sockets; don't wait for
a sendto() to fail first. Accommodates drivers where a sendto()
on a connected socket crashes the application or system. Clears
"Never Connect Outbound Socket" mode if set.
All the workaround modes are saved in the SPEAKFRE.INI file and apply to
subsequent executions. The menu items are disabled when a connection is
active.
As suggested by John Deters (jad@DHDSC.MN.ORG), I added the ability to
automatically open an iconised version of Speak Freely whenever a new
inbound connection is established. This lets you see the site that's
just started talking to you. Since some people might find such an
unsolicited pop-up irritating, this only happens if you check the new
Options menu item "Look Who's Talking".
Tested under Windows 95 final build. Works fine when using the standard
built-in WINSOCK, but doesn't resolve host names when Sun PC-NFS is
overloaded on top of Windows networking. This appears to be a general
problem of this configuration; other programs fail on gethostbyname()
in precisely the same way. When you configure Windows 95, be sure to
install the TCP/IP driver; if you don't you'll get nowhere fast.
12 September 1995
Sending a stereo .WAV file in ADPCM compression mode crashed the Unix
speaker program. The code in READWAVE.C which calculates the number of
bytes of .WAV file needed to fill a packet was incorrectly assuming the
nBlockAlign field was the size of an individual sample, not the frame
of samples for all channels. Fixed.
Closing a connection while a .WAV file was being sent orphaned the MMIO
handle used to read the file. Fixed in CONNECT.C.
13 September 1995
Added the ability to drop saved connection (
没有合适的资源?快使用搜索试试~ 我知道了~
优秀的IP网络语音通讯软件Speak Fleely源代码.zip
共314个文件
c:142个
h:35个
bmp:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 34 浏览量
2022-06-19
19:12:45
上传
评论
收藏 1.14MB ZIP 举报
温馨提示
优秀的IP网络语音通讯软件Speak Fleely源代码.zip
资源推荐
资源详情
资源评论
收起资源包目录
优秀的IP网络语音通讯软件Speak Fleely源代码.zip (314个子文件)
ADPCM.2 2KB
WIN32.ASM 25KB
RING.AU 25KB
CLEAN.BAT 444B
MAKEBETA.BAT 396B
MAKEBIN.BAT 336B
BK32.BAT 272B
BACKUP.BAT 215B
BACKZIP.BAT 127B
MAKESRC.BAT 117B
MAKEFILE.BC 1KB
AMONSPEC.BMP 716KB
AMONRT.BMP 716KB
ANSWER.BMP 629KB
CHAT.BMP 139KB
CONNPROP.BMP 102KB
LWLASK.BMP 98KB
LWLTELL.BMP 98KB
MULTI.BMP 97KB
PROPELOR.BMP 83KB
BENCH.BMP 76KB
ABOUT.BMP 75KB
FACE.BMP 49KB
GENKEY.BMP 39KB
VOX.BMP 32KB
NEWCONN.BMP 25KB
ICON.BMP 630B
BLUEDOT.BMP 230B
FRAME.C 150KB
CONNECT.C 76KB
LWLD.C 48KB
DIALOGS.C 46KB
ULAW.C 44KB
LWL.C 27KB
DESTEST.C 27KB
FCRYPT.C 25KB
IDEA.C 24KB
DES.C 24KB
BFTEST.C 21KB
RTPACKET.C 20KB
SPECTRAL.C 20KB
LONG_TER.C 17KB
ANSWER.C 16KB
GIFTOBMP.C 15KB
DES.C 14KB
RANDOM.C 13KB
SPEAKER.C 13KB
BENCH.C 13KB
VOICE.C 13KB
FACE.C 12KB
RPE.C 12KB
SHORT_TE.C 12KB
VOICE_NN.C 10KB
LPC.C 10KB
READ_PWD.C 9KB
BFSPEED.C 9KB
SPEED.C 8KB
INIT.C 8KB
G711.C 8KB
VATPKT.C 8KB
MD5.C 8KB
LPC.C 8KB
DECODE.C 8KB
ADPCM_U.C 8KB
SET_KEY.C 8KB
ADPCM.C 7KB
ANALYS.C 7KB
ENC_READ.C 6KB
GSM_IMPL.C 6KB
READWAVE.C 6KB
ECB_ENC.C 6KB
BF_CBC.C 6KB
ADD.C 6KB
BF_ENC.C 6KB
BF_CFB64.C 5KB
CFB_ENC.C 5KB
SPECTRUM.C 5KB
GSM_PRIN.C 5KB
STR2KEY.C 5KB
GSM_ENCO.C 5KB
EDE_ENC.C 5KB
UTILITY.C 5KB
PLACEV.C 5KB
QUD_CKSM.C 5KB
BF_OFB64.C 5KB
CFB64EDE.C 5KB
CHAT.C 5KB
DISKIO.C 5KB
BF_SKEY.C 5KB
ENC_WRIT.C 4KB
GSM_EXPL.C 4KB
VPARMS.C 4KB
OFB64EDE.C 4KB
PITSYN.C 4KB
PLACEA.C 4KB
MAIN.C 4KB
BSYNZ.C 4KB
BF_ECB.C 4KB
CFB64ENC.C 4KB
NCBC_ENC.C 4KB
共 314 条
- 1
- 2
- 3
- 4
资源评论
programxh
- 粉丝: 17
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ASCII American Standard Code for Information Interchange
- 一个chm格式的 SQL 函数手册-SQL语言手册文档
- 计算当前月份的天数和剩余天数
- 基于ARM的指令调度和延迟分支
- 基于Vue和TypeScript的极简聊天应用设计源码 - HasChat
- 基于Vue2全家桶和Zcool数据的图片收集网站设计源码 - cool-picture
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功