You are on page 1of 75

Abstract

The aim of this project is to design, develop and implementation a voice chat application using a visual basic 6.0. This application allows a multiple users to chat with one other through network connection. Secured chat and file transfer is encouraging new ways of working from home, collaboration and information sharing in many industries. This project describes the basic networking functions, components, and signaling protocols in Vo ! networks. t e"plores the ramifications of deploying Vo ! as well as the service considerations that drive specific e#uipment and technology choices. nstant messaging typically boosts communication and allows easy collaboration. n contrast to e$mails or phone, the parties know whether the peer is available. %n the other hand, people are not forced to reply immediately to incoming messages. This way, communication via instant messaging can be less intrusive than communication via phone, which is partly a reason why instant messaging is becoming more and more important in corporate environments. &oreover, we may do this with use of security, authentication and encryption technologies, depending on the re#uirements. n this project we can retrieve individual details of the flight which will be displayed in specific format. Some more types of data retrieval can also be done. 'ere the details can be viewed using menu option in &( form.

INTRODUCTION There are several ways to e"ecute a process on other computers or other application domains which are related to each other through a network )*+, or nternet-. .emote e"ecuting means running a process in another computer without using any resource or /!0 load in the local computer. 0sing a client1server application is the only solution for doing so. 2e can create and use such applications in a wide range of platforms and methodologies by using .,3T .emoting which is built on the .,3T 4ramework technology. + managed object can be accessed by a remote client. 2hen a client makes a call to an object of the server program, a pro"y object grabs the call first. The pro"y object behaves like the remote object, e"cept that the pro"y object is running locally. .emoting allows calling methods and passing objects across +pplication (omains. 2e need to create our own method of cross$application communication. 2e have an object that needs to accept calls from client applications across 'TT!. 4irst, we5d need to define our object6s location as a 0.* of some kind. Then we would need to choose a port that the object should listen to. 2e would also need some way of publishing the interface of our object so that clients would know what methods are available to call, and we would need a method of describing the interface and handling the messaging between objects. The creators of the .,3T 4ramework have done just that and have e"posed the remoting functionality as a powerful way for programmers to start getting their applications to communicate. Server The remote object needs a server process where it will be instantiated. This server has to create a channel and put it into listening mode so that clients can connect to this channel. 2hen the client connects to the remote object it needs to know the 0. of the object, that is, the name of the host where the remote object is running, the protocol and port number to connect to, the name of the server, and the name of the remote object. Such a connection string can look like this7

tcp711localhost780001SimpleServer1&y.emote%bject The server is implemented in a console application. .emoting /onfiguration configures the server and activate the channel. The creation of the remote object and communication with the client is done by the remoting infrastructure9 we just have to make sure that the process doesn5t end. 2e do this with /onsole Client The client specify the 0.* of the server using tcp711hostname7port1application. n this e"ample, the server runs on local host with the port number 8000. The application name of the server is defined with the name attribute of the :application; element in the server configuration file. The :well$known; element specifies the remote object we want to access. The type attribute defines the type of the remote object and the assembly. The 0.* attribute defines the path to the remote object. +lthough Voice over ! )Vo !- has e"isted for several years, it has only recently begun to take off as a viable alternative to traditional public switched telephone networks )!ST,-. nterest in Vo ! has grown in part because the technology can help organi<ations reduce costs by using a single ! network to support both data and voice applications. =ut cost is not the only factor driving Vo !6s growth. Service providers are also attracted by Vo !6s revenue potential. %perators can use their Vo ! networks to rapidly deploy new value$added and high$margin applications and services. %rgani<ations can choose from a variety of e#uipment and networking protocols to implement their Vo ! solution. >ust as in data networking, identifying the appropriate e#uipment and technology for the Vo ! network depends heavily on an organi<ation6s business and technical re#uirements. This paper describes the basic networking functions, components, and signaling protocols in Vo ! networks. t e"plores the ramifications of deploying Vo ! as well as the service considerations that drive specific e#uipment and technology choices. This paper is intended to provide organi<ations with a general understanding of Vo !, so that they will be better prepared to solve the more comple" issues associated with deploying a secure and assured Vo ! network. Vo ! )or nternet telephony which is almost the same thing- is any one of several technologies that allow you to make phone calls over the nternet instead of over the telephone network. Some more advanced and secure systems use a

This has only recently become common among residential broadband subscribers. Specifically you need a bit more than ?00kbps per connection using modern Vo ! transmission technologies.private data network instead of the nternet. This technology has been around since the ?8@0s but hasn5t been practical until recently because for it to be effective you need a broadband1high$speed connection. That kind of bandwidth has been available in businesses for longer and technology is already well established in the business market .

2.)&in B0?.BB &= ?C GSamsung ?0A keys *ogitech E Serial *aser )'! !rinter- 1.2.1 HARDWARE CONFIGURATION: &other board !rocessor .3T 2 .2 SYSTEM CONFIGURATION 1.1.2 SOFTWARE CONFIGURATION: 4ront end %perating System 7 7 V=.+& 'ard disk 4loppy disk &onitor Heyboard &ouse !ort !rinter 7 7 7 7 7 7 7 7 7 7 ntel ABC D= !entium V C?E &= A0D= )&+F.(%2S F! ..

• including code created by an unknown or semi$trusted third party.3T 4ramework class library. providing core services such as memory management. • problems of scripted or interpreted environments.. thread management.3T 4ramework can integrate with any other code.3 SOFTWARE OVERVIEW: OVERVIEW OF TECHNOLOGIES USED 3... The class library. and remoting .2. The ..3T 4ramework has two main components7 the common language runtime and the . is a comprehensive.. n fact.1 Front End Technology !cro"o#t .NET Fr$%e&or' The .1.3T 4ramework.. The common language runtime is the foundation of the . • To provide a code$e"ecution environment that minimi<es software deployment To provide a code$e"ecution environment that guarantees safe e"ecution of code. Iou can think of the runtime as an agent that manages code at e"ecution time. e"ecuted locally but nternet$distributed.3T 4ramework is a new computing platform that simplifies application development in the highly distributed environment of the 4ramework is designed to fulfill the following objectives7 • nternet. • . or e"ecuted remotely.. • applications. The . To provide a code$e"ecution environment that eliminates the performance To make the developer e"perience consistent across widely varying types of To build all communication on industry standards to ensure that code based on the and versioning conflicts. /ode that targets the runtime is known as managed code. while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness.3T 4ramework. such as 2indows$based applications and 2eb$based applications. while code that does not target the runtime is known as unmanaged code. object$oriented collection of reusable types that you can use to develop applications ranging from traditional command$line or graphical user interface .3T To provide a consistent object$oriented programming environment whether object code is stored and e"ecuted locally. the concept of code management is a fundamental principle of the runtime. the other main component of the .

'osting the runtime in this way makes managed mobile code )similar to &icrosoftJ +ctiveFJ controls. and other system services.)D0 .3T hosts the runtime to provide a scalable. The . 4or e"ample. but also supports the development of third$party runtime hosts.3T 4ramework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the e"ecution of managed code. server$side environment for managed code. The illustration also shows how managed code operates within a larger architecture.3T 4ramework not only provides several runtime hosts. even if it is being used in the same active application. This means that a managed component might or might not be able to perform file$access operations... or network. code e"ecution.applications to applications based on the latest innovations provided by +S!. The following illustration shows the relationship of the common language runtime and the class library to your applications and to the overall system. thread e"ecution. such as 2eb 4orms and F&* 2eb services. The security features of the . thereby creating a software environment that can e"ploit both managed and unmanaged features. or other sensitive functions. The . registry$access operations. code safety verification. +S!. compilation.. The runtime enforces code access security. but with significant improvements that only managed code can offer. nternet 3"plorer is an e"ample of an unmanaged application that hosts the runtime )in the form of a & &3 type e"tension-. enterprise network.3T.. 2ith regards to security. such as semi$trusted e"ecution and secure isolated file storage.possible. managed components are awarded varying degrees of trust.. or local computer-. 0sing nternet 3"plorer to host the runtime enables you to embed managed components or 2indows 4orms controls in 'T&* documents. file system. 4or e"ample. These features are intrinsic to the managed code that runs on the common language runtime. depending on a number of factors that include their origin )such as the nternet. Features of the Common Language Runtime The common language runtime manages memory. both of which are discussed later in this topic.3T works directly with the runtime to enable 2eb 4orms applications and F&* 2eb services. +S!. users can trust that an e"ecutable embedded in a 2eb page can play an animation on screen or sing a song. but cannot access their personal data.

+lthough the common language runtime provides many standard runtime services. the managed environment of the runtime eliminates many common software issues. memory leaks and invalid memory references. &eanwhile. The runtime also enforces code robustness by implementing a strict type$ and code$ verification infrastructure called the common type system )/TS-. 4inally. The /TS ensures that all managed code is self$describing.3T 4ramework make the features of the . This means that managed code can consume other managed types and instances. + feature called just$in$time )> T. n addition. nteroperability between managed and unmanaged code enables developers to continue to use necessary /%& components and (**s. the memory manager removes the possibilities of fragmented memory and increases memory locality$of$reference to further increase performance. releasing them when they are no longer being used. +ny compiler vendor who chooses to target the runtime can do so. managed code is never interpreted. such as &icrosoftJ SK* ServerL and nternet nformation Services ) S-. and components written in other languages by other developers. This automatic memory management resolves the two most common application errors. The runtime is designed to enhance performance. The runtime also accelerates developer productivity. the class library. 4or e"ample.runtime thus enable legitimate nternet$deployed software to be e"ceptionally featuring rich. yet take full advantage of the runtime.. greatly easing the migration process for e"isting applications. This infrastructure enables you to use managed code to write your business logic. server$side applications. the runtime automatically handles object layout and manages references to objects. programmers can write applications in their development language of choice.. while strictly enforcing type fidelity and type safety.compiling enables all managed code to run in the native machine language of the system on which it is e"ecuting. 2hile the runtime is designed for the software of the future. while still . The various &icrosoft and third$party language compilers generate managed code that conforms to the /TS. *anguage compilers that target the .3T 4ramework available to e"isting code written in that language. 4or e"ample. it also supports software of today and yesterday. the runtime can be hosted by high$performance.

4or e"ample. The class library is object oriented.3T 4ramework. +S!. F&* 2eb services. This not only makes the .. . +s you would e"pect from an object$oriented class library.NET Framework Class Library The . enabling a user to perform a task... Iour collection classes will blend seamlessly with the classes in the .3T 4ramework types enable you to accomplish a range of common programming tasks.3T 4ramework types easy to use. the . you can use the 2eb 4orms classes. 4or e"ample. you can use the . the 2indows 4orms classes are a comprehensive set of reusable types that vastly simplify 2indows D0 development.. the .. database connectivity.3T 4ramework... and file access. data collection.3T applications.3T 4ramework.3T 2eb 4orm application. but also reduces the time associated with learning new features of the . 4or e"ample. n addition to these common tasks.. Scripted or hosted applications. n addition.3T 4ramework to develop the following types of applications and services7 • • • • • • /onsole applications.3T 4ramework collection classes implement a set of interfaces that you can use to develop your own collection classes. the class library includes types that support a variety of speciali<ed development scenarios. providing types from which your own managed code can derive functionality. including tasks such as string management. 2indows services.. third$party components can integrate seamlessly with classes in the .3T 4ramework class library is a collection of reusable types that tightly integrate with the common language runtime. f you write an +S!. Client Application De elopment /lient applications are the closest to a traditional style of application in 2indows$based programming. These are the types of applications that display windows or forms on the desktop.enjoying the superior performance of the industry5s best enterprise servers that support runtime hosting.. 2indows D0 applications )2indows 4orms-. /lient applications include applications such .

+(environment such as &icrosoftJ Visual =asicJ. !er er Application De elopment Server$side applications in the managed world are implemented through runtime hosts. Iour applications can implement the features of a local application while being deployed like a 2eb page. has access to local resources..deployed over the nternet as a 2eb page.. n some cases the underlying operating system does not support changing these attributes directly. many applications that once needed to be installed on a user5s system can now be safely deployed through the 2eb. The . consistent development environment that drastically simplifies the development of client applications. n the past. This application is much like other client applications7 it is e"ecuted natively. This means that binary or natively e"ecuting code can access some of the resources on the user5s system )such as D0 elements and limited file access. and in these cases the .without being able to access or compromise other resources. developers created such applications using /1/MM in conjunction with the &icrosoft 4oundation /lasses )&4/. 0nmanaged applications host the common language runtime. and other screen elements with the fle"ibility necessary to accommodate shifting business needs.3T 4ramework incorporates aspects of these e"isting products into a single. making coding simpler and more consistent. buttons. The 2indows 4orms classes contained in the . Iou can easily create command windows. menus. as well as custom business applications such as data$entry tools.3T 4ramework are designed to be used for D0 development. 4or e"ample. 2indows 4orms controls have semi$trusted access to a user5s computer. the . 0nlike +ctiveF controls. and so on. /lient applications usually employ windows..3T 4ramework automatically recreates the forms. and includes graphical elements. =ecause of code access security..or with a rapid application development ). reporting tools. and they likely access local resources such as the file system and peripherals such as printers. buttons. which allows your custom . menus. toolbars.3T 4ramework provides simple properties to adjust visual attributes associated with forms. and other D0 elements.3T 4ramework integrates the developer interface.as word processors and spreadsheets.. This is one of many ways in which the . +nother kind of client application is the traditional +ctiveF control )now replaced by the managed 2indows 4orms control.

3T and 2eb 4orms offers. n contrast.avigator.etscape .3T 4ramework. your code no longer needs to share the same file with your 'TT! te"t )although it can continue to do so if you prefer-. . and both have a collection of supporting classes in the .. like any other managed application. n addition. +S!.3T pages are faster. are distributed. unmanaged +S! pages are always scripted and interpreted. f you have used earlier versions of +S! technology. F&* 2eb services technology is rapidly moving application development and deployment into the highly distributed environment of the nternet. F&* 2eb services components have no 0 and are not targeted for browsers such as nternet 3"plorer and ... 2eb$based applications..3T is more than just a runtime host9 it is a complete architecture for developing 2eb sites and nternet$ distributed objects using managed code. 'owever. or even other F&* 2eb services. Server !i"e #$n$%e" &'"e +S!. +S!. Servers such as S and SK* Server can perform standard operations while your application logic e"ecutes through the managed code. +s a result. 4or e"ample. an important evolution in 2eb$based technology. =oth 2eb 4orms and F&* 2eb services use S and +S!. This model provides you with all the features of the common language runtime and class library while gaining the performance and scalability of the host server.3T 4ramework to target 2eb$based applications.3T 4ramework.. server$side application components similar to common 2eb sites. The following illustration shows a basic network schema with managed code running in different server environments.. 'owever. F&* 2eb services consist of reusable software components designed to be consumed by other applications. F&* 2eb services.managed code to control the behavior of the server. such as traditional client applications. 2eb 4orms pages e"ecute in native machine language because. unlike 2eb$based applications. they take full advantage of the runtime.3T is the hosting environment that enables developers to use the . more functional.3T as the publishing mechanism for applications. you can develop 2eb 4orms pages in any language that supports the .. you will immediately notice the improvements that +S!. and easier to develop than unmanaged +S! pages because they interact with the runtime like any managed application.. nstead.

and caching services right out of the bo". 2S(*. such as S%+!. f you develop and publish your own F&* 2eb service.3T is a programming framework built on the common language runtime that can be used on a server to build powerful 2eb applications.3T is compiled common language runtime code running on the server. . This amounts to dramatically better performance before you ever write a line of code. F&* 2eb services are built on standards such as S%+! )a remote procedure$call protocol-.. 4inally.3T can take advantage of early binding. and 2S(* ) the 2eb Services (escription *anguage-.3T 4ramework provides a set of classes that conform to all the underlying communication standards. the ..3T offers several important advantages over previous 2eb development models7 • En)$n&e" (er*'r#$n&e.. F&* )an e"tensible data format-. parse its 2S(* description. The source code can create classes derived from classes in the class library that handle all the underlying communication using S%+! and F&* parsing.. 4or e"ample. +lthough you can use the class library to consume F&* 2eb services directly. the 2eb Services (escription *anguage tool and the other tools contained in the S(H facilitate your development efforts with the . your F&* 2eb service will run with the speed of native machine language using the scalable communication of S. like 2eb 4orms pages in the managed environment. A&tive Server ($%e!.3T 4ramework S(H can #uery an F&* 2eb service published on the 2eb.. and F&*. the 2eb Services (escription *anguage tool included with the .. The . +S!. native optimi<ation.3T 4ramework.The . +S!.. and produce /N or Visual =asic source code that your application can use to become a client of the F&* 2eb service. 0nlike its interpreted predecessors. 0sing those classes enables you to focus on the logic of your service.3T 4ramework is built on these standards to promote interoperability with non$ &icrosoft solutions. just$in$time compilation.. +S!.. without concerning yourself with the communications infrastructure re#uired by distributed software development.NET +S!.3T 4ramework also provides a collection of classes and tools to aid in development and consumption of F&* 2eb services applications.

from simple form submission and client authentication to deployment and site configuration.3T runtime. deadlocks-.'rt. a new process can be created in its place... The .3T is also language$independent. +S!. 4or e"ample.3T 4ramework applications as well..li&it0. 2IS 2ID editing. hierarchical configuration system. . new settings may be applied without the aid of local administration tools. ..3T makes it easy to perform common tasks. with managed code services such as automatic reference counting and garbage collection. This O<ero local administrationO philosophy e"tends to deploying +S!. • M$n$%e$/ilit0.3T. so that if one misbehaves )leaks.3T 4ramework application is deployed to a server simply by copying the necessary files to the server.. with features specifically tailored to improve performance in clustered and multiprocessor environments. &essaging. the +S!.. common language runtime interoperability guarantees that your e"isting investment in /%&$based development is preserved when migrating to +S!. which simplifies applying settings to your server environment and 2eb applications.. • Si#. +S!. processes are closely monitored and managed by the +S!. +dditionally. so you can choose the language that best applies to your application or partition your application across many languages. and (ata +ccess solutions are all seamlessly accessible from the 2eb.3T is based on the common language runtime. • S&$l$/ilit0 $n" Av$il$/ilit0.3T has been designed with scalability in mind. drag$and$drop server controls.. 4urther..3T 4ramework class library. =ecause configuration information is stored as plain te"t. +n +S!. =ecause +S!. The +S!. 4urther.3T page framework allows you to build user interfaces that cleanly separate application logic from presentation code and to handle events in a simple. the common language runtime simplifies development.o server restart is re#uired. +S!.3T framework is complemented by a rich toolbo" and designer in the Visual Studio integrated development environment. +S!.. Visual =asic $ like forms processing model.. which helps keep your application constantly available to handle re#uests. the power and fle"ibility of that entire platform is available to 2eb application developers.. • ('-er $n" Fle. and automatic deployment are just a few of the features this powerful tool provides.3T employs a te"t$based. even to deploy or replace running compiled code.• W'rl" Cl$!! T''l S+.i/ilit0..

.3T provides synta" compatibility with e"isting pages-. W)$t i! AS(. Visual =asic..3T runtime with your own custom$written component. 2ith built in 2indows authentication and per$application configuration. Language !upport The &icrosoft ..ten!i/ilit0. They can be deployed throughout an S virtual root directory tree. • for pages )e"isting +S! code is opa#ue to tools-.. +S!.3T 2eb 4orms pages are te"t files with an . it provides7 • The ability to create and use reusable 0 controls that can encapsulate common The ability for developers to cleanly structure their page logic in an orderly The ability for development tools to provide strong 2IS 2ID design support functionality and thus reduce the amount of code that a page developer has to write. the +S!.NET We/ F'r#!2 The +S!...3T 2eb 4orms page framework is a scalable common language runtime programming model that can be used on the server to dynamically generate 2eb pages. • Se&+rit0.3T 4ramework class. +S!.. and >script . This class can then be used to dynamically process incoming ..asp" file name e"tension.• C+!t'#i1$/ilit0 $n" E. ntended as a logical evolution of +S! )+S!.asp" resources.3T runtime parses and compiles the target file into a . mplementing custom authentication or state services has never been easier. the +S!.3T !latform currently offers built$in support for three languages7 /N. you can be assured that your applications are secure. n particular. n fact..3T 2eb 4orms framework has been specifically designed to address a number of key deficiencies in the previous model. it is possible to e"tend or replace any subcomponent of the +S!. 2hen a browser client re#uests . • fashion )not Ospaghetti codeO-.3T delivers a well$factored architecture that allows developers to Oplug$inO their code at the appropriate level.

The first is the method shown in the preceding samples.asp" file.UI.3T server controls to program 2eb pages.Ht#lC'ntr'l!. +ny tag that doesn5t e"plicitly map to one of the controls is assigned the type of S0!te#.UI.. Intr'"+&ti'n t' AS(.+t t0.asp" )no modification of code is re#uired-.. +n alternative approach$$known as the code$behind method$$ enables the page code to be more cleanly separated from the 'T&* content into an entirely separate file. 4or e"ample.We/.asp" file using custom tags or intrinsic 'T&* tags that contain a r+n$t45!erver5 attributes value.re#uests.Ht#lC'ntr'l! namespace. . This control state is not stored on the server )it is instead stored within an 6in..ote that the .asp" file. +n +S!. code blocks to program dynamic content. Server controls are declared within an .e45)i""en57 form field that is round$tripped between re#uests-.3T provides synta" compatibility with e"isting +S! pages. ).Ht#lGeneri&C'ntr'l.ote also that no client$side script is re#uired. where the page code is physically declared within the originating . .asp" file is compiled only the first time it is accessed9 the compiled type instance is then reused across multiple re#uests-. This includes support for :P P.3T page can be created simply by taking an e"isting 'T&* file and changing its file name e"tension to .We/.NET Server C'ntr'l! n addition to )or instead of. +S!.3T page developers can use +S!.using :P P. Server controls automatically maintain any client$entered values between round trips to the server. ntrinsic 'T&* tags are handled by one of the controls in the S0!te#..3T supports two methods of authoring dynamic pages.. C'"e 3e)in" We/ F'r#! +S!. code render blocks that can be intermi"ed with 'T&* content within an . the following sample demonstrates a simple 'T&* page that collects a user5s name and category preference and then performs a form post back to the originating page when a button is clicked7 +S!. These code blocks e"ecute in a top$down manner at page render time.

C.. you can host reports on 2eb and 2indows platforms and publish /rystal reports as . pages. you can #uickly create comple" and professional$looking reports. server controls..n addition to supporting standard 'T&* input controls. (evelopers can also use controls +S!.3T server controls provide an easy way to encapsulate common +S!.3T. any work beyond basic formatting can be complicated7 consolidations. +S!.'rt! /rystal .. Q.. 6. 2ith /rystal .3T. built by third parties.3T 2eb 4orms pages provide synta" compatibility with e"isting +S! +S!.3T templates provide an easy way to customi<e the look and feel of list +S!. 'owever. 2ith /rystal . B. and conditional formatting are difficult to program. ?.3T 2eb 4orms pages can target any browser client )there are no script +S!.3T is the standard reporting tool for Visual =asic. the following sample demonstrates how the 6$!. charting.. nstead of coding.eports for Visual =asic ..3T 2eb 4orms provide an easy and powerful way to build dynamic 2eb . Cr0!t$l Re.. multiple level totals. server data validation. @... functionality..3T enables developers to utili<e richer custom controls on their pages.3T platform. E. you use the /rystal . +S!..:$"r't$t'r7 control can be used to dynamically display rotating ads on a page..eports for Visual =asic. presentation$#uality content R which has been the strength of /rystal . you could write code to loop through record sets and print them inside your 2indows or 2eb application..3T ships with BC built$in server controls.eports for Visual Studio . A. 'T&*.3T9 it brings the ability to create interactive. To present data to users. 4or e"ample.eport 2eb Services on a 2eb server.eport (esigner +S!. 0.3T server controls can automatically project both up level and down level +S!.3T validation controls provide an easy way to do declarative client or library or cookie re#uirements-..eports for years R to the .

or =ottom. you can #uickly create reports based on your development needs7 • /hoose from report layout options ranging from standard reports to form letters. and charting criteria you specify.ecovering all data to a point of known consistency in case of system failures. • • • • 3. Re. &icrosoft SK* Server is a Structured Kuery *anguage )SK*. (isplay charts that users can drill down on to view detailed report data. + database typically has two components7 the files holding the physical database and the database management system )(=&S. or build your own report from scratch.interface to create and format the report you need.... Show Top. D$t$/$!e + database is similar to a data file in that it is a storage place for data. /alculate summaries. 3ach of these terms describes a fundamental part of the architecture of SK* Server. including7 • • • &aintaining the relationships between data in the database.2 3AC8 END TECHNO9OGY: A/'+t Mi&r'!'*t S:9 Server 2.'rt E.software that applications use to access data. The powerful . and percentages on grouped data.based. subtotals. *ike a data file.eport 3"perts. client1server relational database. 3nsuring that data is stored correctly and that the rules defining data relationships . grouping. The (=&S is responsible for enforcing the database structure. /onditionally format te"t and rotate te"t objects. a database does not present information directly to a user9 the user runs an application that accesses data from the database and presents it to the user in an understandable format. Rel$ti'n$l D$t$/$!e .ert! 0sing the /rystal . results of data.eport 3ngine processes the formatting. are not violated.

&ost modern (=&S products support the 3ntry *evel of SK*$8E. the database files and (=&S software reside on a server.ational Standards nstitute )+. normali<ation. they connect over the network from their computers.and the nternational Standards %rgani<ation ) S%have defined standards for SK*. . Server applications are usually capable of working with several clients at the same time. The SK* Server communication component also allows communication between an application running on the server and SK* Server. you can usually find many different ways to define tables. data is collected into tables )called relations in relational theory-. . which ensures that the set of tables you define will organi<e your data effectively. it is also capable of working as a stand$alone database directly on the client. There are several different languages that can be used with relational databases9 the most common is SK*. .S . n a relational database. Client<Server: n a client1server system. + communications component is provided so applications can run on separate clients and communicate to the database server over a network. 2hen individuals need to use the resource. SK* Server can work with thousands of client applications simultaneously. 2hen organi<ing data into tables. =oth the +merican .defined by the (=&S software. The server has features to prevent the logical problems that occur if a user tries to read or modify data currently being used by others. 2hile SK* Server is designed to work as a server in a client1server network. the server is a relatively large computer in a central location that manages a resource used by many people.elational database systems are an application of mathematical set theory to the problem of effectively organi<ing data. or clients.elational database theory defines a process. The scalability and ease$of$use features of SK* Server allow it to work efficiently on a client without consuming too many resources. you must use a set of commands and statements )language. the latest SK* standard )published in ?88E-.There are different ways to organi<e data in a database but relational databases are one of the most effective. 3"amples of servers are7 n a client1server database architecture. Str+&t+re" :+er0 9$n%+$%e =S:9> To work with data in a database. to the server.

Data warehousing SK* Server includes tools for e"tracting and analy<ing summary data for online analytical processing )%*+!-. such as inventory information for a manufacturing warehouse. and other objects. and triggers. The data stored in a database is usually related to a particular subject or process. and each database can store either interrelated data or data unrelated to that in the other databases. and another9 related database can store historical customer orders that are used for yearly reporting. Databases + database in &icrosoft SK* Server consists of a collection of tables that contain data. 3nterprise 3dition. such as views. 4or e"ample. !calability The same database engine can be used across platforms ranging from laptop computers running &icrosoft 2indowsJ 8C18A to large. SK* Server also includes tools for visually designing databases and analy<ing data using 3nglish$based #uestions. deploy.TJ. defined to support activities performed with the data. it is mportant to understand the parts of a database and how to design these parts to ensure that the database performs well after it is implemented. =efore you create a database. stored procedures. one database can store current customer order data. multiprocessor servers running &icrosoft 2indows . N'r#$li1$ti'n t)e'r0: . and use SK* Server across several sites. inde"es. the nternet. a server can have one database that stores personnel data and another that stores product$related data. manage. !ystem integration with other ser er software SK* Server integrates with e$mail. +lternatively.!"L !er er Features &icrosoft SK* Server supports a set of features that result in the following benefits7 Ease of installation# $eployment# an$ use SK* Server includes a set of administrative and development tools that improve your ability to install. SK* Server can support many databases. and 2indows.

. + relation is said to be in a particular form if it satisfies a certain specified set if constraints. .elations are to be normali<ed to avoid anomalies.-. B. (ata . . and (ata +dapter.4. This normal form avoids the transitive dependencies on the primary key. + relation can6t be non$loss split into two tables but can be split into three tables. and F&* in mind. update and delete operations.$. C.ormal 4orm )C .4-7 + relation is said to be in ? .ormal 4orm )? . Mi""le-$re Te&)n'l'%0 A&tive.4 and every non key attribute is fully dependent on primary key. Cth .3T uses some +(% objects.4. Bth .= then all of the relation are also functionally dependent on +)i.. 6.eader.if and only if every join dependency in .3T is an evolution of the +(% data access model that directly addresses user re#uirements for developing scalable applications. This is called >oin (ependency. is implied by the candidate key on . Q rd . D$t$ O/?e&t!. To decide a suitable logical structure for given database design the concept of normali<ation.4 is and only if it is in ? .. +(%. That is the fields of an n$set should have no group items and no repeating groups. End .4 if and only if every determinant is a /andidate key.ormal 4orm )Q .4 .7 This is a stronger definition than that of . !rojection >oin .ormali<ation theory is built around the concept of normal forms. Hey new +(%.4.e.4 and every non key attribute is non transitively dependent on the primary key. and also introduces new objects.%. E. ?..3T objects include the (ataset. Q.ormal 4orm )B ..Net Overvie+(%. This normal takes care of functional dependencies on non$key attributes.4.4 is and only if all unaligned domains contain values only.ormal 4orm )!>. +$. + relation is said to be in =/. which are briefly described below.7 + relation is said to be in E .4.. ?st . n insert. statelessness.ormal 4orm )E .. t was designed specifically for the web with scalability.ormal 4orm )=/.F for all attributes " of the relation.7 + relation is said to be in Q .4.4-7 + relation .7 + relation is said to be in B .4 if and only if whenever there e"ists a multi valued dependency in a relation say +$. =oyce code .4 is and only if it is in E . such as the /onnection and /ommand objects.. is in C .

4or issuing SK* commands against a database. and so forth. and hierarchical..o matter what the source of the data within the (ataset is.eader and (ata +dapter. The F&*$based (ataset object provides a consistent programming model that works with all models of data storage7 flat. and some that are new. and how to program against them.S#l/lient. 4or connection to and managing transactions against a database. . +t the center of this approach is the (ata +dapter. The following sections will introduce you to some objects that have evolved. These objects are7 • • /onnections. the managed provider has detailed and specific information. n the remaining sections of this document. . The %*3 (= and SK* Server . n the past. =ecause of that. relational. 2hile the (ataset has no knowledge of the source of its data. /onnection. (ata . t accomplishes this by means of re#uests to the appropriate SK* commands made against the data store. + (ata +dapter is the object that connects to the database to fill the (ataset. based on operations performed while the (ataset held the data. and by representing the data that it holds as collections and data types.that are part of the . t does this by having no 5knowledge5 of the source of its data.The important distinction between this evolved stage of +(%. Iou can think of the (ataset as an always disconnected record set that knows nothing about the source or destination of the data it contains. much like in a database. it connects back to the database to update the data there. data processing has been primarily connection$based. which provides a bridge to retrieve and save data between a (ataset and its source data store.ow.. in an effort to make multi$tiered apps more efficient.3T (ata !roviders e"plaining what they are.3T (ata !roviders )System. columns. Then. we5ll walk through each part of the (ataset and the %*3 (=1SK* Server . relationships. /ommands.. nside a (ataset. data processing is turning to a message$based approach that revolves around chunks of information. there are tables. it is manipulated through the same set of standard +! s e"posed through the (ataset and its subordinate objects. and persist the (ataset to and from data stores. fill. views. The role of the managed provider is to connect. constraints. the (ataset functions as a standalone entity.3T and previous data architectures is that there e"ists an object $$ the (ataset $$ that is separate and distinct from any data stores.et 4ramework provide four basic objects7 the /ommand. .(ata.(ata.%le(b and System..

an 0!(+T3 statement. • database.eader object is returned after e"ecuting a command against a database.(ata. 4or pushing data into a (ataset.eaders. or a statement that returns results.3T (ata !rovider )System.eader object is somewhat synonymous with a read$only1forward$only cursor over data.eader object is different from a record set.S3.T statement against the ... and are represented by provider$specific classes such as SK*/ommand. + (ata . • relational data.3T (ata !rovider is used to talk to any %*3 (= provider )as it uses %*3 (= underneath-.. + command can be a stored procedure call. F&* data and (ata +dapters. Iou can also use input and output parameters. 2hen dealing with connections to a database. 4or storing. C'##$n"! /ommands contain the information that is submitted to a database. D$t$ Re$"er! The (ata . The format of the returned (ata .S#l/lient. 4or e"ample.eader +! supports flat as well as hierarchical data. C'nne&ti'n! /onnections are used to 5talk to5 databases.3T (ata !rovider )System. The (ata . removing and programming against flat data.orth wind database.and %*3 (= .3T (ata !rovider. /ommands travel over connections and result sets are returned in the form of streams which can be read by a (ata .(ata. you might use the (ata . there are two different options7 SK* Server . and return values as part of your command synta".%le(b-.. D$t$!et! . 4or reading a forward$only stream of data records from a SK* (atasets.eader to show the results of a search list in a web page. The %*3 (= . and reconciling data against a Server data source. n these samples we will use the SK* Server . These are written to talk directly to &icrosoft SK* Server.eader object. or pushed into a (ataset object. The e"ample below shows how to issue an .• (ata . and are represented by provider$specific classes such as SK*/onnection.

The (ataset object is similar to the +(% .ecord set object, but more powerful, and with one other important distinction7 the (ataset is always disconnected. The (ataset object represents a cache of data, with database$like structures such as tables, columns, relationships, and constraints. 'owever, though a (ataset can and does behave much like a database, it is important to remember that (ataset objects do not interact directly with databases, or other source data. This allows the developer to work with a programming model that is always consistent, regardless of where the source data resides. (ata coming from a database, an F&* file, from code, or user input can all be placed into (ataset objects. Then, as changes are made to the (ataset they can be tracked and verified before updating the source data. The Det /hanges method of the (ataset object actually creates a second (ataset that contains only the changes to the data. This (ataset is then used by a (ata +dapter )or other objects- to update the original data source. The (ataset has many F&* characteristics, including the ability to produce and consume F&* data and F&* schemas. F&* schemas can be used to describe schemas interchanged via 2eb Services. n fact, a (ataset with a schema can actually be compiled for type safety and statement completion. D$t$ A"$,ter! =O9ED3<S:9> The (ata +dapter object works as a bridge between the (ataset and the source data. 0sing the provider$specific S#l(ata+dapter )along with its associated S#l/ommand and S#l/onnection- can increase overall performance when working with a &icrosoft SK* Server databases. 4or other %*3 (=$supported databases, you would use the %le(b(ata+dapter object and its associated %le(b/ommand and %le(b/onnection objects. The (ata +dapter object uses commands to update the data source after changes have been made to the (ataset. 0sing the 4ill method of the (ata +dapter calls the S3*3/T command9 using the 0pdate method calls the ,S3.T, 0!(+T3 or (3*3T3 command for each changed row. Iou can e"plicitly set these commands in order to control the statements used at runtime to resolve changes, including the use of stored procedures. 4or ad$hoc scenarios, a /ommand =uilder object can generate these at run$time based upon a select statement. 'owever, this run$time generation re#uires an e"tra round$trip to the server in order to gather re#uired metadata, so e"plicitly providing the ,S3.T, 0!(+T3, and (3*3T3 commands at design time will result in better run$time performance. ?. +(%.,3T is the ne"t evolution of +(% for the .,et 4ramework.

E.

+(%.,3T was created with n$Tier, statelessness and F&* in the forefront. Two

new objects, the (ataset and (ata +dapter, are provided for these scenarios. +(%.,3T can be used to get data from a stream, or to store data in a cache for updates. Q. B. There is a lot more information about +(%.,3T in the documentation. .emember, you can e"ecute a command directly against the database in order to

do inserts, updates, and deletes. Iou don5t need to first put data into a (ataset in order to insert, update, or delete it. C. +lso, you can use a (ataset to bind to the data, move through the data, and navigate data relationships

SYSTEM STUDY This deals with the study of e"isting system and its problem, evaluation of alternative solutions and the proposed system definition.

E.i!tin% !0!te#
The scenario in most organi<ation is that they make use of different applications for each of the departments to manage their activities. n the e"isting system the promotion of this project are maintained in single user voice system and also not used in graphical smiles. This main disadvantage of this system was, since all the registers were view web based site.

De#erit!
• • • • • • • • The process is very slow. The 3"isting system cannot provide smiles. t is difficult to connect with *+, system. t is not a portable one. t6s used in loss compression techni#ues The less number of tools are available in e"isting system t is not a fle"ible one. t6s developed in a >ava. t6s does not a graphical

+s the number of passenger and items are increasing the number of register also with increase (RO(OSED SYSTEM t overcome the problem e"isting project, and support a more features. FEATURES • • • Support clear voice transmission 0sed lossy less file compression techni#ue 0sed smiles

• • • • • /onnect multi client in *+. its supported more smiles and graphical interface . (oes not need separate protocol Support special privileged user 3ach person must have login and register the Server t6s developed using V= 6.0.

eports generated here give the minute information. . The database tables were designed by using all the necessary fields in a compact manner. t consists of developing specification and procedures for data preparation and to input in to the computer for processing. • • • • • • +ll the input screens in this system are user friendly and understandable format also the si<e of the screens + menus designed in this system are brief . The input design is the link that types the information system to the world of its users.'rt$nt *e$t+re! $re $! *'ll'-!: input screen is not over crowded. nput interface design takes an important role in controlling the errors. nstead more are provided to understand the data entry process. . as the user can understand a piece of information from the screen. T)e i#. The redundancy and duplication of fields are avoided. +nd output designs were designed. 3. Simply we can say input design is the process of converting the user$generated inputs into computer$based format. n this project errors during data entry are controlled by the input design by providing appropriately error message. n the design phase of the data base tables.compact and self$e"planatory The menus are sharp and user can invoke the system. (esign is a lace where #uality is fostered in software development. input screen design. (esign is the only ways their re#uirements are accurately translated into finished software product are system. which helps the manager to take vital decisions.1 IN(UT DESIGN naccurate input data are the most common of errors in data processing. The important of software design can be stated with a single wordS #ualityS.SYSTEM DESIGN The System design is last phase that indicate the final system and process of the final system.

/ode design consists of developing specifications and procedures for data preparation. the objectives and the output re#uirements of the system were identified. +fter performing the necessary modification.nput validation is being done at program level to check errors and help message are to be provided to effectively enter data into the data entry screen in the software. 0sing these tools. the output of the system and the files to be used are designed. simplification in handling and retrieval if items by consuming less storage space. The various inputs. The new design is a solution and the translation of the re#uirements of the old by the ways of meeting them. The codes are designed in such a manner that it will be easily understands by the user.2 OUT(UT DESIGN The entire output screens are informative and interactive in such a way that the user can fulfill his re#uirements through #ueries. n this the system the main output screens are to up$to$date reports and listing of re#uired information. these steps necessary to put transaction data into usable form for . The code design is the link that ties the information system in the world of its users. data flow. data flow diagram and etc. +s human is prone for errors and mistakes confirmation for critical data entries are being provided. System design is the process by which a logical model of the proposed system is designed using the system flow diagram. the system flow. the file structures and the logical flow of the program were arrived at the system was finally implemented. the input1output reports were finali<ed with the user.3 CODE DESIGN /odes facilitate easier identification. 3. +fter performing input1output analysis for the system. 3. system flow. The codes also generated automatically by the system. System design is process of planning of a new system that is a complement of the old and to replace the e"isting system with new system. the input to the system.

the source documents. E$!0 "$t$ in. which is much similar. Men+ "riven This system is menu driven. and the activity of putting the data into the computer for processing. +ppropriate messages are provided which prompts the user in entering the right data erroneous data puts are checked at the end of each code entry. (ata entry can be achieved by instructing the computer for processing and to read the data from a written or printed documents. The following features have been incorporated into the code design of the proposed system. or it can occur by having people keying data directly into the system. specific codes have been given and validation is done which enables user to enter the re#uired data or correct them if they have entered wrong codes similarly. D$t$ v$li"$ti'n nput data is validated to minimi<e errors in data entry for certain data. This simplifies computer data access or entry. . data entry.processing. naccurate input data are the most common causes of error in data processing. !roper message and appropriate direction to control errors committed by data entry operations. but reduces the chances for error in data entry.+t (ata entry code has been designed in a manner. validation can be done with respect to the data types. nstead of remembering what to enter. the user chooses from a menu. The menu limits the user choice of response. U!er *rien"line!! 0se is never left in a state of confusion as to what is happening without appropriate error and acknowledgement message being received.

(ata consistency (ata independence. 3ach record is stored in single rows of the tables. 3ach column of the tables refers to the particular fields on the table proper care is to design the database to achieve the objectives below. To the printer. The system is able to e"tract missing or omitted information from the user by directing the user through appropriate messages. 3. To the server. .Inter$&tive "i$l'%+e!: The system engages the user in an interactive dialogue.@ DATA3ASE DESIGN + database is a collection of interrelated data with minimum redundancy to serve #uick and effective. n oracle. • • • • • (ata integration. data are stored in tables.

cost and user dissatisfaction. important control parts are tested to uncover errors within the boundary of the module. nterfacing errors have been uncovered and corrected. each module is found to be working satisfactorily as regards to the e"pected output from the module. %nit testing f done poorly. t is vital to the success of the system. &ali$ation testing +fter performing the integration testing. 0sing the design descriptions as a guide. software is completely assembled as package. n this testing step. and validation testing . testing cannot show the absence of defects 1 errors.TESTING AND IM(9EMENTATION Te!tin% Software testing is a critical element of software #uality assurance and represents the ultimate review of specification. design and code. Testing analy<e a program that the indent of finding problems and errors that measures system functionality and #uality. Testing a program consists of providing the program with the set of test inputs or test cases and observing if the program behaves as e"pected. n other words. Testing includes inspection and structured peer reviews of re#uirements and design as well as e"ecution of code. the conformance to specifications and is an indication of software reliability and #uality. it leads to high maintenance 0nit testing focuses on the verification effort on the smallest unit of the software design the module. This testing has been carried out in this system during programming stage itself. Since the proposed system has modules. the testing is individually performed on each module. 3ffective software testing helps to deliver a #uality software product that satisfies user6s re#uirements needs e"ceptions. This is known as the module testing. t also evaluates the attributes and t demonstrates capabilities of programmed and access whether they achieve the re#uirement results.

+n improper installation may affect the success of the new computeri<ation delivery information system. This out weights its benefits. This method offers high security. . 'ence output testing does not result any correction to the system. The checking them with all possible test values tests the output generated by the system under consideration. n this approach. The new. replacing the e"isting manual system. There are several methods available for handling the new implementations and the conse#uent conversion from the old to the new computeri<ed system. validation testing was done by inputting dummy data to ensure that the software developed satisfied all the re#uirements of the user. 'utput testing +fter performing the validation testing. + proper implementation is essential to provide a reliable system you meet the re#uirements of the operating organi<ation. we can depend upon the manual system. which is operated in a very different manner from the proposed new system.may begin. the cost for maintaining two systems in parallel is very high. SYSTEM IM(9EMENTATION: mplementation includes all those activities that take place to convert from the old system to the new. The application was made free of all logical and interface errors. because even if there is a flaw in the computeri<ed system. personal may operate in the manual order processing system in the accustomed manner as well as start operating the new computeri<ed system. @. IM(9EMENTATION (9AN: The implementation plan consists of the methods for changing for conversion and procedures used to ensure that it is performed properly.2. Software validation is achieved through series of black bo" test that demonstrate conformity with re#uirements. The most secure method for converting from the old to the new system is to run both the old and the new systems in parallel. The old system consists of manually operating delivery information system. since no system could be useful if it does not produce the re#uired output in the specific format. the ne"t step is output testing of the proposed system. 'owever.

The implementation plan should anticipate possible problems and must be able to deal with them. The usual problems may be missing documents.The implementation plan includes a description of all the activities that must occur to implement the new airline information system to put into operation. errors in data translation. . mi"ed data formats between current files. missing data etc.

private. and no formal knowledge is needed for the user to use the system. +lthough packet loss of any kind is undesirable. errors message etc. some voice packet loss can be tolerated as long as the loss is spread out over a large amount of users. instead he can select values from the combo bo" or such tools are provided.C'NCL%!('N The project was successful. secured discussions. &enu driven with user friendly screen enables the user to use the system without any difficulty is in convenient. (ue to many options the user need not type more. The code is relatively clear and allows easily eventual other programmers to enter into it to design new developments. Voice #uality is not generally affected if the amount of packet loss is less than five percent for the total number of calls. which allows public. we could build an intuitive chat. and the goals globally reached. . and designed to answer to many e"ception cases. This shows the user friendliness of the system also users are guided with valuable information. The application is robust.

Dolgotia publications pvt. 2ei &eng *ee Series 3ditor . V= (eveloper6s Duide. 'enry f korth.. /ameron 2akefield. >ason beres. E. Q.. 3dn.utshell .eilly. System +nalysis and (esign. Steven .ltd.Visual =asic !rogramming =ible. &cDraw hills international. =ill 3vjen.oman. ?888. 3lias m +ward. (atabase System concepts +braham Silverschtat<.?. E00? C.)()L('*RA+.on !etrusha V= *anguage in a . 'enk$3vert Sonder. et al B. %5.

Di$%r$# .A((ENDICES D$t$*l'.

.

X =yVal w!aram +s *ong.3S +s *ong V T'? !rivate /onst *VSX3FX40**. X *og(ataType +s e*og(ataSelect /ase *og(ataType .aw(ata ncoming.+s String !rivate +ll0ser)+s T0ser !rivate 2insock/ount +s *ong !rivate /onst Seperator +s String V OWWWO !rivate /onst *V&X4 ./QE aus =enut<ername T !asswort+dmin +s =oolean 5 sser +dminU wsc ( +s nteger 5 (er 2insock nde" banTime +s nteger 5 2ie lange isser gebanntU Voice3nabled +s =oolean 5 Voice/hat anU Voice!layer ( +s *ong 5 (FA Voice !layer ( wsc=ytes. . Server3rror N3nd f !rivate Type T0ser 0sername +s String 5 =enut<ername 0ser!ass +s *ong 5 !asswort )/.dllO )N f 4alse Then 5Trick preserves /ase of 3nums when typing in (3 !rivate .eceived%ldSessions +s *ong 5 =ytes empfangen )Voice9nicht in der aktuellen SessiondpA=ytesSend%ldSessions +s *ong 5 =ytes gesendet )Voice9nicht in der aktuellen Session3nd Type !rivate 3num e*og(ata infodata Server3vent Server3rror 3nd 3num 5 V% /3 mplements (irect!layA3vent mplements (irect!layVoice3ventA !rivate mo/all=ack +s (irect!layA3vent !rivate mf3"it +s =oolean !rivate mfTerminate +s =oolean !rivate mlVoice3rror +s *ong 5 V% /3 !rivate 3"itServer +s =oolean !rivate .aw(ata%utgoing.ST +s *ong V T'?000 !rivate /onst *V&XS3T3FT3. (* . Server3vent.%2S3*3/T +s *ong V T'E0 !rivate (eclare 4unction Send&essage *ib OuserQEO +lias OSend&essage+O )=yVal hwnd +s *ong. X l!aram +s +ny.eceive=uffers).ST M CB!rivate /onst *VSX3FXD.+s *ong !rivate Sub +dd*og3ntry)=yVal 3ntry +s String. X =yVal w&sg +s *ong.eceived +s *ong 5 =ytes empfangen )/hatwsc=ytesSend +s *ong 5 =ytes gesendet )/hatdpA=ytes.(3(* STV 32STI*3 +s *ong V )*V&X4 .S'+r&e C'"e SERVER %ption 3"plicit !rivate (eclare Sub nit/ommon/ontrols *ib OcomctlQE.

.wsc=ytesSend5\ .0sername 5\ wenn voice enabled ist.. f .Voice!layer ( V $? Then dp/ V dpp.Sub tems)A.*ist tems)i M ?-.. lv0ser.V +ll0ser)i-.V True 3nd Sub !rivate 4unction =ytesToString)=ytes +s *ong. =ytesToString V .ot +ll0ser)i-.dpA=ytesSend%ldSessions3nd f 5\ wsc=ytes.X/%.+dd tem OY43'*3.*ist tems.%T [24 *3*3.Sub tems)8=ytesToString)+ll0ser)i-.l=ytesSent.eceived%ldSessionslv0ser.+dd tem OY nformation O T Time T OZ O T 3ntry /ase Server3rror lstServer3vents.. =ytesToString V .dpA=ytes.. O T Time T OZ O T 3ntry 3nd Select lstServer3vents.eceivedlv0ser..eceived%ldSessionslv0ser.T O &=O 3nd f 3nd 4unction !rivate Sub cmd+ctuali<eX/lick)(im dp/ +s (!.*ist tems)i M ?-. +ll0ser)i-.Sub tems)?0=ytesToString)dp/ .eceived..est lv0ser./ase Server3vent lstServer3vents.Voice!layer (lv0ser.onDuaranteed +ll0ser)i-..l=ytes.l=ytes. .eceivedDuaranteed M dp/ .ound)<w4ile*en 1 )?0EB-.esume .onDuaranteed M +ll0ser)i-..V =ytesToString)+ll0ser)i-.X . OfalseO- V M M V V .0ser!ass lv0ser.V f)+ll0ser)i-.T O H=O 3lse 5.*ist/ount $ ?.%T.Sub tems)8.l=ytesSentDuaranteed dp/ .3/T %. OtrueO.+dd tem OYServer O T Time T OZ O T 3ntry /ase infodata lstServer3vents.Sub tems)@.*ist tems)i M ?-.+dd .*ist tems.+s String (im <w4ile*en +s *ong <w4ile*en V =ytes f <w4ile*en :V ?0EB Then =ytesToString V <w4ile*en T O =yteO 3lse f <w4ile*en :V ?0BAC@6 Then 5. E..Sub tems)?.4% (im i +s nteger %n 3rror .V =ytesToString)+ll0ser)i-.e"t lv0ser./lear 4or i V 0 To 0=ound3")+ll0serlv0ser.+dmin.Sub tems)?0=ytesToString)+ll0ser)i-..%T .dpA=ytes. lv0ser...Det/onnection nfo)+ll0ser)i-.%T [24 *3*3.dpA=ytesSend%ldSessions3lse 5.ound)<w4ile*en 1 ?0BAC@6.V =ytesToString)dp/ .*ist tems)i M ?-.*ist tems)i M ?-.*ist tems)i M ?-.Selected)lstServer3vents.*ist tems)i M ?-.wsc=ytes. E.Sub tems)E.*ist tems)i M ?-.

.+&3 3F ST 3.t"tO5\ . ...T.!ath T O]user. vb3"clamation M vbIes. =3.euer =enut<erOf Str!tr).3/'T3 '+=3.Sub tems)i M ?-.*ist .0T[3.ew cls/.ew+dmin V OtrueO 3lse 5.V +ll0ser)i-..ew0sername +s String (im .wsc ( tems)C.V vbIes Then . ( 3S3.%T &SD=%F)O(3.V +ll0ser)i-../ (im fnr +s nteger (im <w +s String (im i +s nteger (im e +s nteger %n 3rror DoTo errh 5\ Sicherungskopie f 4ile3"ists)+pp.ew!assword +s String (im . 3"it Sub 3nd f 3nd f .euer =enut<erOf Str!tr).V +ll0ser)i-.e"t i 3nd Sub tems)i M ?-.Sub tems)i M ?-. O.ew!assword.+D3. ST.Voice!layer ( !rivate Sub cmd+dd0serX/lick)(im .em.em.V +ll0ser)i-.e"t i 5\2enn nicht.o. .303.UO..0T[3. dann adden.*ist lv0ser.banTime tems)B.ew!assword V nput=o")ODeben Sie ein !asswort f`r den =enut<er einO.euen =enut<ernamen .echte f &sg=o")OSoll der =enut<er feste +dministratorrechte habenUO.Te"t V ..UO.Sub tems)i M ?-.o.3 TS^ &a/'T3.*ist tems..!ath T O]secXuser.!ath T O]user.0T[3. 43ST3 +(& . +pp.Voice3nabled tems)6.*ist tems..ew0sername e V lv+dd. .*ist tems. O.Sub tems)Q./ount f lv+dd.*ist lv0ser.V 0 Then 3"it Sub 5\=enut<ername schon vorhandenU e V $? 4or i V ? To lv+dd.+dd .eues !asswort .em. 3 .t"tO. vbIes.*ist tems)i-.ew0sername V nput=o")ODeben Sie einen neuen =enut<ernamen einO. =3. .%T &SD=%F)OS%** (3.ew+dmin +s String (im /rcQE/heck +s . =3.+T%.ew0sername Then f &sg=o")O(er =enut<ername e"istiert bereits^ &_chten Sie f`r diesen =enut<er neuere (aten eintragenUO. f e V $? Then lv+dd..lv0ser./ount 3nd f 5\ .t"tO.V 0 Then 3"it Sub 5\ +dmin$.V vbIes Then eVi 3"it 4or 3lse 5.ew0sername.Then /all 4ile/opy)+pp.3 (+T3.T =3. S 3 4b.*ist lv0ser.em.

t"tO &sg=o" O=enut<er registriert^ ). tem)e-..efresh (o3vents 5\ so alles hin<ugef`gt. tem)e-..*ist tems./alculateString).*ist tems)i-. vb/ritical 3nd 3nd Sub !rivate Sub cmd3ndX/lick)f &sg=o")OServer wirklich beendenUO.eceive=uffers)0.!ath T O]user.!ath T O]secXuser./ount !rint Nfnr.t"t^ 3s wurde <uvor eine Sicherungskopie angelegt..em. vb/ritical M vbIes.em wsc&ain.Then Hill +pp.o. vb nformation 3"it Sub errh7 &sg=o" OSchwerer +usnahmefehler beim [ugriff auf die (atei 0ser.Sub tems)E. lv+dd.em Drid*ines lv0ser Drid*ines lv+dd.'ide .*isten 5 .em.e(im .V vbIes Then 3"itServer V True 0nload &e 3nd f 3nd Sub !rivate Sub 4ormX*oad)(im i +s nteger f +pp. picTray 4ull.*ist tems. lv+dd.e(im Sending(ata)0.em.*ist tems.eustart erforderlich-O.ew!assword T .em.Sub tems)E.em. )secXuser.ead0ser(ata tsServerX/lick cmd+ctuali<eX/lick (o3vents modSysTray.V /rcQE/heck.jet<t noch speichern fnr V 4ree4ile %pen +pp.ew+dmin V OfalseO 3nd f lv+dd.t"t-O. OV=&essenger8 ServerO.Sub tems)?.t"tO 4or %utput +s Nfnr 4or i V ? To lv+dd.+ddTray picTray.!ath T O]secXuser.em.Sub tems)?!rint Nfnr.ew0sernamelv+dd.owSelect lv0ser 4ull.owSelect lv+dd.e"t i /lose Nfnr f 4ile3"ists)+pp.ew+dmin (o3vents .V .Te"t !rint Nfnr. lv+dd.*ist tems)i-.t"tO.!rev nstance Then 3nd 5frm&ain.*ist tems)i-.

V f)+ll0ser)i-. X 0nload&ode +s ntegerf .*ist tems.e"t i 3nd Sub !rivate Sub 4ormXKuery0nload)/ancel +s nteger./lose 4or i V ? To 2insock/ount wsc)2insock/ount-.t"tO 4or %utput +s Nfnr 4or i V 0 To lstServer3vents.e"t modSysTray. OfalseO. tem)i M ?-.Sub tems)?.0sername lv+dd.*ist tems.*ist tems.ow T O.+dmin.(+T+ cbSi<e +s *ong hwnd +s *ong u ( +s *ong u4lags +s *ong u/allback&essage +s *ong h con +s *ong s<Tip +s String d ?EA . OYServer O T Time T OZ O T OSchliece Server$*ogO /lose Nfnr (oSleep E00 3nd Sub %ption 3"plicit !ublic Type .e"t i +dd*og3ntry OSchliece Server$*ogO.em.%T 4I /%. infodata %n 3rror . .esume .e"t &k(ir +pp.ot 3"itServer +nd .+dd .ot vb+pp2indows Then /ancel V True &e.em.em.tmrStatsXTimer 4or i V 0 To 0=ound3")+ll0serlv+dd.Sub tems)E. lstServer3vents. tem)i M ?-.*ist/ount $ ? !rint Nfnr.V +ll0ser)i-. infodata !rint Nfnr. +ll0ser)i-.*ist)i(o3vents .'ide 3nd f 3nd Sub !rivate Sub 4ormX0nload)/ancel +s nteger(im i +s nteger (im fnr +s nteger %n 3rror ./lose 0nload wsc)2insock/ount(o3vents .0ser!ass lv+dd.esume .emTray wsc&ain.. infodata /leanup +dd*og3ntry O(irectF A Voice Server geschlossenO.e"t i +dd*og3ntry O2insocks beendetO. OtrueO.!ath T O]Server*ogs]Server*ogXO T Det.!ath T O]Server*ogsO %n 3rror DoTo 0 fnr V 4ree4ile %pen +pp.

.otify con .X%*(V3. 4X . 4X /%.. 4XD0 ( V T'B !rivate /onst 2&X&%0S3&%V3 V T'E00 !rivate /onst 2&X*=0TT%.3( /%.4% %r .D V T'E !rivate /onst .4X /%.S %. V T'? !rivate /onst .dwState V 0 . V T'E0B !rivate /onst 2&X.ull/har 5Kuick nfo des Symbols T vb.0! V T'E0C !rivate /onst 2&X. &X(3*3T3 V T'E !rivate /onst .%T 4I /%.S %. 4X&3SS+D3 V T'? !rivate /onst .S %.dwState&ask V 0 3nd 2ith 5. 4X3. V T'E0? !rivate /onst 2&X*=0TT%.4% V T'? !rivate /onst .XV3.u ( V vb.%T 4I /%.!icture .(+T+ !rivate /onst .%. V T'E !rivate /onst .hwnd .%.cbSi<e V *en)nfX con(ata.(%2.u/allback&essage V 2&X&%0S3&%V3 . %r . 4XST+T3 V T'A !rivate /onst . V 0 !rivate /onst . 4X.(%2.3 V T'0 !rivate /onst .u4lags V .ull . nfX con(ata 3nd Sub . &XS3TV3. V Q !rivate /onst . SXS'+.=0TT%.=0TT%.%T 4I /%.ull/har . &XS3T4%/0S V T'Q !rivate /onst . X traytip +s String. X !ict +s !icture=o"2ith nfX con(ata .dwState +s *ong dwState&ask +s *ong s< nfo +s String d EC6 uTimeout +s *ong s< nfoTitle +s String d 6B dw nfo4lags +s *ong 3nd Type !rivate nfX con(ata +s .4% V T'?0 !rivate /onst .(=*/*H V T'E0Q !rivate /onst 2&X. 4X&3SS+D3 %r . 4XT ! V T'B !rivate /onst . . &X&%( 4I V T'? !rivate /onst . V T'B !rivate /onst .(+T+ ShellX. 4X2+. SX' ((3. V T'Q !rivate /onst . &X+((. 4X . 4X .hwnd V !ict.s<Tip V traytip T vb.=0TT%.0! V T'E0E !ublic /onst 2&X*=0TT%. &X+(( V T'0 !rivate /onst . 4XT ! . 4X /%. V T'E !rivate /onst .h con V !ic.(=*/*H V T'E06 !ublic Sub +ddTray)!ic +s !icture=o".

3nd 2ith 5.cbSi<e V *en)nfX con(ata. X !ict +s !icture=o"2ith nfX con(ata . &X&%( 4I. nfX con(ata 3nd Sub !ublic Sub &odifyTray)!ic +s !icture=o".dwState&ask V 0 3nd 2ith 5..(+T+ ShellX.ull/har 5Kuick nfo des Symbols T vb. .u4lags V . nfX con(ata 3nd Sub .%. &X(3*3T3.ull/har 5Kuick nfo des Symbols T vb.D.4% 5=enut<es con f`r den =alloon ) nfo.dwState V 0 ..!icture . X nfoTip +s String. +m 3nde muss ein /hre)0.u/allback&essage V 2&X&%0S3&%V3 .!ublic Sub =aloonTip)!ic +s !icture=o".u ( V vb.s< nfo V nfoTip T vb.ull . .otify con .ull/har 5Te"t des =allonTips.uTimeout V ? 5[eit nachdem der =alloon spft. %r . 4X .ull .!icture .4% %r . verschwinden soll )millisek. 4X2+. %r .h con V !ict.hwnd V !ic. 4X . 4X /%.u/allback&essage V 2&X&%0S3&%V3 . . &X&%( 4I. nfX con(ata 3nd Sub !ublic Sub . 4X&3SS+D3 %r . 4X3. T /hre)0.4%. . 4X.s<Tip V traytip T vb.s<Tip V traytip T vb.ull/har 54ettformatierte bberschrift des =alloon$Tips. X traytip +s String. 4X . 4XT ! .dwState V 0 .u ( V vb.emTray)ShellX.dw nfo4lags V .dwState&ask V 0 .hwnd .otify con ..hwnd V !ic.ull/har .3.ull/har .cbSi<e V *en)nfX con(ata.angehfngt werden.(+T+ ShellX. 4X /%. .4X /%. 4XT ! . 2arnung oder 4ehler-).s< nfoTitle V nfoTitle T vb.otify con . 4X .h con V !ict. X traytip +s String. &ehr<eilige Tips sind m_glich )[eilenwechsel7 vb/r*f-.hwnd .4% %r . X nfoTitle +s String2ith nfX con(ata .%. X !ict +s !icture=o". 4X&3SS+D3 %r .4X /%.u4lags V .

udge to YusernameZ 5 54ile 5Y0sernameZ Y4ilenameZ Y4ile Si<eZ 5$. Sends to all users of the YTypeString )true ] falseZ . *ogin .Client 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 5 5 V=&essenger8 Server T /lient 5 5 )/. 5/an be changed only for private use.ameZ the Y+cceptString )true ] false ] alreadyreceiving-Z for a 4ileTransferanfrage 5 5Typing 5YTypeString )true ] falseZ 5$. please 5 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 5 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 5 5 V=&essenger 8 /lient 5 5 Serverbefehle 5 $$$$$$$$$$$$$$$$$$$$$ 5 5 5 *ogin 5Y0sernameZ YpasswordZ 5$. Y&essageZ to all 5 5!rivate&essage 5Y0sernameZ 5$. 5/ommercial use is forbidden^ 5 5Suggestions for improvements and changes. Sends Y0ser .by Thorben *inneweber )E00C5 5 %penSource 5 5 &ay be passed unchanged.e#uest 5 5&essage 5Y&essageZ 5$. &essage to YusernameZ 5 5.udge 5Y0sernameZ 5$. Sends to YusernameZ. a 4ileanfrage for Y4ilenameZ Y4ile Si<eZ 5 5 5+cceptfile 5Y0sernameZ Y+cceptString )true ] false ] alreadyreceiving-Z 5$. .

epresents the fi"ed admin rights restored 5 5+skvoice 5YZ 5$. Hick YusernameZ )only works if the sender has no admin rights5 5=an 5Y0sernameZ 5$.eturn values from the server )3vents. .esponse 5 5&essage 5Y0sernameZ YmessageZ Y+dmin )true ] false-Z 5$. .udgeb .)from the perspective of the client5$$$$$$$$$$$$$$$$$$$$$$$$ 5 5*ogin 5Y+cceptString )accept ] deny-Z 5$.udge from YusernameZ 5 5. .5 5 5Hick 5Y0sernameZ 5$. &ake Y0ser nameZ to the +dmin )only works if the sender has no admin rights5 5Diveupadmin 5YZ 5$.e#uest$. Dives the +dmin 5 5Hick voice 5Y0sernameZ 5$. =anned YusernameZ )only works if the sender has no admin rights5 5&ake+dmin 5Y0sernameZ 5$. /onfirmation by a private YmessageZ 5 5. Y&essageZ to all of YusernameZ 5 5!rivate&essage 5Y0sernameZ YmessageZ Y+dmin )true ] false-Z 5$.e#uest for voice chat 5 5 5. Throws YusernameZ from the Voice /hat 5 5*ogin admin 5YZ 5$. !rivate YnewsZ from YusernameZ 5 5!rivatemessageb 5Y0sernameZ YmessageZ Y+dmin )true ] false-Z 5$.udge 5Y0sernameZ Y+dmin )true ] false-Z 5$. *ogin .

Y0sernameZ YusernameEZ from the Voice /hat 5 5 %ption 3"plicit !rivate ntelliVisible +s =oolean !rivate Time%ut/ +s nteger !rivate Typing)+s tTyping . Y0sernameZ YusernameEZ banned 5 5&ake+dmin 5Y0sernameZ YusernameEZ 5$ 'as.ameZ ] not typing typing9 YTypeString )true ] false-Z 5 5+skvoice 5Y+llowStr )true ] false-Z 5$. Y0ser . Y0ser . . Y+cceptString )true ] false ] alreadyreceiving-Z 5 5+cceptfileb 5Y0sernameZ Y+cceptString )true ] false ] alreadyreceiving-Z YTech )true ] false-Z 5$. Y0sernameZ YusernameEZ kicked 5 5=an 5Y0sernameZ YusernameEZ 5$ 'as. 4iletransfer+nfrage+ntwort=estftigung 5 5Typing 5Y0sernameZ YTypeString )true ] false-Z YTech )true ] false-Z 5$. 4ile transfer from YusernameZ.ameZ ] not typing typing9 YTypeString )true ] false-Z 5 5Voice 5Y0sernameZ YusernameZ YVoiceStr )enabled ] disabledZ 5$. Y0sernameZ YusernameEZ made the +dmin 5 5Diveupadmin 5Y0sernameZ 5$. Voice answer to Kuestion 5 5Hick 5Y0sernameZ YusernameEZ 5$ 'as. 4ile+nfragesendebestftigung 5 5+cceptfile 5Y0sernameZ Y+cceptString )true ] false ] alreadyreceiving-Z YTech )true ] false-Z 5$ .5Y0sernameZ Y+dmin )true ] false-Z 5$. Y0ser .udge Send confirmation 5 54ileb 5Y0sernameZ YfilenameZ Y4ilesi<eZ Y+dmin )true ] false-Z 5$.ameZ has removed his admin rights 5 5Hick voice 5Y0sernameZ YusernameEZ 5$ Hicks.e#uest confirmation.

3vent/olor.esponse of others to file a support re#uest f .hat die (ateitransferanfrage angenommenO.?O Then 5 /lient who wants to send a file that runs on the same computer as server 5 special case )in press by &r. X .T= 0sername T f)+dmin V OtrueO.emote ! T O. X =yVal lp!arameters +s String. =ierwirth yet implemented5 9.dllO )!rivate (eclare 4unction Shell3"ecute *ib OshellQEO +lias OShell3"ecute+O )=yVal hwnd +s *ong.eceive=uffer !ublic o&agnetic2nd +s String +s . +ddTe"tTo... X +cceptStr +s String.!rivate . . OO. True.ew c&agnetic2nd !rivate (eclare Sub nit/ommon/ontrols *ib OcomctlQE. 3vent/olor...emote ! mod(eclaration.T= 0sername T f)+dmin V OtrueO. X =yVal lp(irectory +s String.T= OSie haben dem (ateitransfer mit O T 0sername T O <ugestimmtO. True.+s *ong !rivate Sub +ccept4ile)0sername +s String.emote ! T O.. True mod(eclaration. X =yVal nShow/md +s *ong. X +dmin +s String5\ f you have consented to the 4ile+nfrage f +cceptStr V OtrueO Then +ddTe"tTo.T O)O T . da er1sie bereits (ateien sendet1empffngtO.emote ! +s String. 3vent/olor.. 3vent/olor. X =yVal lp4ile +s String.T= 0sername T f)+dmin V OtrueO. +ddTe"tTo.0. X +dmin +s String5 \ 5.Sending%r.kann momentan keine (ateien empfangen.T O)O T .%T +//3!TST. X =yVal lp%peration +s String.Show 3lse f +cceptStr V OfalseO Then 5..hat die (ateitransferanfrage abgelehntO.emote ! T O.Server ! 3nd f f +cceptStr V OtrueO Then +ddTe"tTo. O )+dministrator-O.eceiving4ile V 4alse 3lse f +cceptStr V OalreadyreceivingO Then 53mergency +//3!TST. True. O )+dministrator-O. True frmTransfer.Send4ile V True frmTransfer..eceiving4ile V 4alse 3nd f 4lash+ndSound 3nd Sub !rivate Sub +ccept4ile=)0sername +s String. OO. O )+dministrator-O. OO. X +cceptStr +s String.Sending%r. True.emote ! V mod(eclaration. True mod(eclaration..T O)O T .Show 3lse f +cceptStr V OfalseO Then 53mergency +//3!TST..emote ! V O?E@. True mod(eclaration.emote ! V .0.

. X %ptional =old +s =oolean V 4alse. .T=Smilies. da Sie bereits eine (atei empfangenO.T=/hat 3nd Sub !rivate Sub +skVoice)+llow +s String5The server has accepted our re#uest to be allowed to engage in voice chat 5$]"Qe ./heck. 3vent/olor. !rivate&essage 3nd Sub !rivate Sub +ddTe"tTo.Te"t. OO. True 3lse f +cceptStr V OalreadyreceivingO Then 5. O )+dministrator-O. True .T= O3in (ateitransfer wurde automatisch abgelehnt. True.ichTe"t4orSmilies)&essage.T=/hat . X %ptional talic +s =oolean V 4alse5\ Simplify the O. True 3nd f 4lash+ndSound 3nd Sub !rivate Sub +dd&essageTe"tTo.Sel/olor V /olor . .Sel=old V =old .T= &essage.T=)Te"t +s String. O )private . OO.T= OSie haben den (ateintransfer mit O T 0sername T O abgelehntO.T= OThe server has the re#uest for a Voice/hat approvedO.T=)0sername +s String.T f)!rivate&essage.ow we can connect to the (FA voice server record )otherwise we would 5/an not connect to the Voice Serverf . 3vent/olor. X %ptional /olor +s /olor/onstants V vb=lack.T=$te"t +ddensO 2ith . True.Sel talic V talic .T= 0sername T f)+dmin.T O sagt7O..ot b*oadedfrmVoice Then f +llow V OtrueO Then +ddTe"tTo.%T +//3!TST.SelTe"t V Te"t T vb.SelStart V *en). X &essage +s String. X +dmin +s =oolean5\ This wonderful feature added 5$ .ew*ine 3nd 2ith 5.achricht-O.5 Smilie$/odes replace +ddTe"tTo. !rivate&essage +ddTe"tTo... CCE66?E. 3vent/olor. True.ews 5$ !rivate messages &essage V mod. X !rivate&essage +s =oolean. +ddTe"tTo.+ddTe"tTo.

Selected tem3nd f 3nd Sub !rivate Sub cmd!rivate&essageX/lick)(im &essageToSend +s String (im To0ser +s String &essageToSend V mod4ast. True 3nd f 3nd f 3nd Sub !rivate Sub =an)+dmin. )&3SS+D3T%S3.frmVoice..T=&essage. Send(ata OnudgeWO T lst=uddys.V 0 Then .eplace.Te"t V vb.T=&essage..0sername Then &sg=o" OIou can not 5...%T *3..2idth frmVoice.5 .Te"t./reate/oloredString).T=&essage.esume . True.T= OThe server has rejected the re#uest for a voice chatO.Show vb&odeless 3lse 5..%T *3.. OO-.T=&essage. +ddTe"tTo.T4 V modV=to.see f *en=)mod4ast.*eft M frm&ain.eplace).Top frmVoice. 3vent/olor.ame T O has O T 0sername T O banned^O. .Selected tem5\ Send a private message that only the other )and one can myself. vb nformation 3lse 5.udge5 send to yourselfO.T4.T4 -.*ist tems)lst=uddys..Te"t3nd Sub !rivate Sub cmd..Te"t.Top V frm&ain.ullString 3"it Sub 3nd f f *en=)To0ser.T4/ode.*ist tems)lst=uddys.%T +**%2. X 0sername +s String+ddTe"tTo. OWO.Then &sg=o" OThe message must not e"ceed E00kb in si<e^O 3lse 5.V 0 Then 3"it Sub f *en)&essageToSend.T4. OOTo0ser V lst=uddys.T3FT.T=&3SS+D3. 3vent/olor. True. OWO. ).Selected tem5\ Sends a nudge to selected user f *en=)To0ser.eplace. )E0BA00.T=&essage.udgeX/lick)(im To0ser +s String To0ser V lst=uddys.*eft V frm&ain.eplace).T= +dmin.(.%T Tousen.ame +s String..e"t . True 3nd Sub !rivate Sub cmd4ormat/odeX/lick)%n 3rror ..*ist tems)lst=uddys.V 0 Then 3"it Sub f To0ser V mod(eclaration..Te"t.

Send(ata OmessageWO T &essageToSend 3nd f .T3FT..Then &sg=o" O(ie ..e"t .eplace).. OO-.T=&3SS+D3.T=&essage.%T .T=&3SS+D3.T4..T=&essage..Te"t V vb.T=&essage.%T . Send(ata OtypingWfalseO f .T3FT.%T.5 .T=&3SS+D3.Te"t V O]]kickO Then Send(ata OkickWO T lst=uddys.achricht darf ma"imal E00kb groc sein^O 3lse 5. Send(ata OgiveupadminO 3lse f . Send(ata OloginadminWO T mod(eclaration.0sername 3lse f .%T .eplace).eplace. ). .T=&essage. Send(ata OkickvoiceWO T lst=uddys. )&3SS+D3T%S3.%T ....T=&essage.. Send(ata OmakeadminWO T lst=uddys.esume .(.T3FT.Set4ocus %n 3rror DoTo 0 3lse 5.%T .ot To0ser V mod(eclaration.T=&essage.*ist tems)lst=uddys. Send(ata ObanWO T lst=uddys.ot *en=)mod4ast..T=&essage.T=&3SS+D3. vb nformation 3nd f 3nd f 3nd Sub !rivate Sub cmdSendX/lick)(im &essageToSend +s String &essageToSend V mod4ast.eplace.Selected tem3lse f . OO5\ Sends a message to all f ..%T .T=&essage.T3FT..*ist tems)lst=uddys.Te"t V vb.Te"t V O]]kickvoiceO Then 5..V 0 Then tmrType.3nabled V 4alse f *en)&essageToSend.Set4ocus %n 3rror DoTo 0 3nd f 3lse 5.*ist tems)lst=uddys.T3FT.%T .Te"t V O]]loginadminO Then 5..T=&essage.*ist tems)lst=uddys. )E0BA00.Selected tem3lse f .ullString %n 3rror .T=&essage.Te"t V vb.ullString %n 3rror .%T .T3FT.*ist tems)lst=uddys. OWO..T=&3SS+D3.T OWO T &essageToSend ... &sg=o" OIou can not send private messages to yourself^O..%T..ullString 3nd f 3nd Sub !rivate Sub cmdSend4ileX/lick)(im To0ser +s String ...esume .T=&3SS+D3.T3FT. OWO.f .Selected tem3lse f .%T *3..Selected tem.Te"t V O]]giveupadminO Then 5.Te"t V O]]makeadminO Then 5.Te"t V O]]banO Then 5.e"t .T=&essage.0sername Then Send(ata OprivatemessageWO T lst=uddys.T=&essage.T4 -.Te"t..%T *3.T=&essage..T=&3SS+D3.Selected tem3lse 5.Te"t.

Sending%r.Selected temf *en=)To0ser.Show%pen hwnd.&odifyTray picTray.e"t .D%.%T .D4 *3 V 4+*S310 f .3nabled V True cmd!rivate&essage.T=&essage.3nabled V True cmdSend4ile.ull/har. vb..eceiving4ile V True mod//..0sername Then mod(eclaration.3nabled V 4alse tmr/onnection/heck.O 3lse 5&%((3/*+. nStr)4ilename.3nabled V True cmdSend.%T .Det4ile*en)4ilename3nd f 3lse 5../lose modSysTray. vb nformation 3nd f 3nd f 3nd Sub !rivate Sub /onnected)5 \ Should be called when connection has been established ]"E6 *ogin modSysTray.$ ?.3"tract4ilename)4ilename. O&essenger 8 $ %nlineO.( .Set4ocus %n 3rror DoTo 0 (o3vents 3nd Sub !rivate Sub (isconnected)5\ Should be called when there is no Vebindung )also in the 4ormX*oad^-]"Qe $ 3verything is disabled 1 reset wsc.!ath%f4ileToSend%r..eceiving4ile V 4alse &sg=o" OThe soecified file does not e"ist^O.+T %.ot 4ile3"ists)4ilename. O&essenger 8 $ not connectedO.T=&essage.%T.Sending%r. True 4ilename V mod//.&odifyTray picTray.cut mod(eclaration.Sending%r. &sg=o" OIou can not send files to yourself^O. picTray .3nabled V True %n 3rror .3nabled V True cmd.5chr)0.3/3 V ..eceive V 4ilename f . picTray tmr/onnect.(im 4ilename +s String To0ser V lst=uddys.esume .*ist tems)lst=uddys.udge.V 0 Then 3"it Sub f mod(eclaration.eceiving4ile Then &sg=o" OSie senden oder empfangen bereits eine (atei. mod(eclaration.s4ile 4ilename V *efte)4ilename.eceiver%rSender V To0ser Send(ata OfileWO T To0ser T OWO T mod4unctions.3nabled V 4alse tmr*ogin.Then mod(eclaration.%T. vb nformation 3lse 5..3nabled V 4alse .T OWO T mod4unctions.S3..4ile(ialog.ot To0ser V mod(eclaration.

+cceptString V OacceptfileWO T 0sername T OWtrueO .waiting for the file 5O T 4ilename T O5 )O T 4ileSi<e T O. X . OO.emote ! T O.T O )O T .*oad con)mod3"tract con.T O)O T . O. *en)4ilename.emote ! V ..O.3nabled V 4alse f b*oadedfrmTransfer Then frmTransfer.?O Then 5 /lient who wants to send a file that runs on the same computer as server 5 special case )in press by &r.*arge.emote ! V O?E@.emote ! +s String..eceiving4ile V 4alse (o3vents 3nd Sub !rivate Sub 4ile)0sername +s String.Value V True !laySound 4ile%rVoice.3nabled V 4alse cmdSend4ile.ighte )4ilename.+T %. OO. O )+dministrator-O.3/3 V . X .T=&essage.(enyString V OacceptfileWO T 0sername T OWfalseO ..Time%ut/ V 0 lst=uddys.emote ! V mod(eclaration.emote ! T O.Send4ile V 4alse frm+ccept4ile. True 2ith frm+ccept4ile .assumeUO 3nd 2ith 5frm+ccept4ile mod(eclaration.O--.eceiving4ile Then Send(ata OacceptfileWO T 0sername T OWalreadyreceivingO 3lse 5&%((3/*+.emote ! mod(eclaration.Sending%r.udge.0./lear .0.3nabled V 4alse cmdSend.3nabled V 4alse cmd. X +dmin +s Stringf .D4 *3 V 4+*S310 mod(eclaration.( ..S3.eceiver%rSender V 0sername 5\ ne accept re#uest to get a file 5$.ev)4ilename.$ nStr. 3vent/olor.D%.Sending%r.von O T 0sername T f)+dmin V OtrueO.3nabled V 4alse cmd!rivate&essage..e#uest +ddTe"tTo./aption V O2ould you like to file 5O T 4ilename T O5 )O T 4ileSi<e T O. X 4ilename +s String.img con. will be automatically rejected if a file already sent 1 received f mod(eclaration.Server ! 3nd f mod(eclaration. =ierwirth yet implemented 9. X 4ileSi<e +s String.Sending%r. O )+dministrator-O. True.T= 0sername T f)+dmin V OtrueO.assume. X 4ilename +s String.!icture V mod3"tract con. . X 4ileSi<e +s String.0nloadfrmTransfer mod(eclaration.eceiving4ile V True cmdSend4ile.Show 3nd f 4lash+ndSound 3nd Sub !rivate Sub 4ile=)0sername +s String.

T= O(o you have a #uestion to the user O T 0sername T O sent.V 0 Then v V Split)str(ata. /Str)v)E--. /Str)v)C-/ase OfilebO 5 $. confirmation that what one tries to send 4ile /Str)v)?--. /Str)v)E-/ase OnudgebO .:$ (im v +s Variant f . /Str)v)Q-5\ . you get ne in#uiry . /Str)v)E--. /Str)v)Q-5\ 2ho is %nlineU /ase OuserlstO 0pdate*st /Str)v)?--. 3vent/olor.ights)lst lst lst lst lst lst ntelliSense.+dd ntelliSense.eceiving a 5nudges5 1 Sendebestftigung /ase OnudgeO . /Str)v)E--. /Str)v)E-5\ .udge /Str)v)?--.4. ingenious system 9. the file 5O T 4ilename T O5 )O T 4ileSi<e T O.eplaced by 5normal5 message /ase OmessageO &essage /Str)v)?--.eceive a private message 1 delivery report /ase OprivatemessageO !rivate&essage /Str)v)?--.udge= /Str)v)?--. OWOSelect /ase /Str)v)0-5\ .an<unehmenO.+dd ntelliSense.+D3 empfangen 1 Sende=estftigung /ase OfileO 5 $. /Str)v)Q-/ase OprivatemessagebO !rivate&essage= /Str)v)?--. /Str)v)Q--. /Str)v)B--. /Str)v)E-5\ 4ileTransfer+.+dmin +s String5 \ + confirmation that you have sent a re#uest +ddTe"tTo. True.+dd tem OkickO tem OgiveupadminO tem ObanO tem OmakeadminO tem OloginadminO tem OkickvoiceO 3nd Sub !rivate Sub 4i"ed(ata+rrival)str(ata +s String5 \ 'ere.ot *en)str(ata. True 4lash+ndSound 3nd Sub !rivate Sub 4ill ntelliSense2ith+dmin.+dd ntelliSense. /Str)v)E--.+dd ntelliSense.+dd ntelliSense.eceiving login information /ase OloginO *ogin /Str)v)?-5\ . the data are well$separated as they were sent off$again 5 $.

/Str)v)Q--. /Str)v)E--.Sel/olor V mod(eclaration.4ont0nderline .ot 'as+ctive2indow Then 5 mod4unctions. /Str)v)Q-/ase OaskvoiceO +skVoice /Str)v)?-5 5 5 \ The admin has done something /ase OkickO Hick /Str)v)?--. /Str)v)E--.4ile= /Str)v)?--.hwnd.Saved%ptions. /Str)v)E--.4ont.4lash4orm frm&ain.4ont. 4alse 5\ it what happened. /Str)v)E--.4ontStrikeThru .Sel talic V mod(eclaration.Saved%ptions. /Str)v)E-/ase ObanO =an /Str)v)?--. /Str)v)E-/ase OmakeadminO &ake+dmin /Str)v)?--.Saved%ptions.4ont.ame V mod(eclaration. /Str)v)E-/ase OgiveupadminO Dive0p+dmin /Str)v)?-/ase OloginadminO *ogin+dmin /Str)v)?-/ase OkickvoiceO HickVoice /Str)v)?--. /Str)v)Q-/ase OtypingO 0serTyping /Str)v)?--.SelStrikeThru V mod(eclaration. then flash form 5 3nd f 3nd Sub !rivate Sub 4ormX nitiali<e)/all nit/ommon/ontrols 3nd Sub !rivate Sub 4ormX*oad).Saved%ptions.Sel4ont.e(im Typing)0mod4unctionsE.ame .4ont talic . /Str)v)B-5\ 4ileTransfer=3STgT D0.Sel0nderline V mod(eclaration.D /ase OacceptfileO 5 $.4ontSi<e .4ont/olor .Saved%ptions. /Str)v)E--.*oad%ptions 2ith .4ont.4ont.4ont.D empfangen 1 Sende=estftigung der 4ileTransfer=3STgT D0. /Str)v)Q--.Saved%ptions. /Str)v)B-/ase OacceptfilebO 5 $.Sel=old V mod(eclaration. you get ne in#uiry +ccept4ile= /Str)v)?--.4ont.T=&essage .4ont.4ont=old . /Str)v)E-3nd Select 3nd f 5 f .Sel4ontSi<e V mod(eclaration.Saved%ptions. confirmation that you accept 1 not accept +ccept4ile /Str)v)?--. /Str)v)Q-/ase OvoiceO Voice /Str)v)?--.

T=/hat. . .ights nitSmilies %n 3rror .*eft V frm&ain.Top V .T=&essage.Top $ ?.T=/hat.*eft $ lst=uddys.T=&essage.'ide 3nd f %n 3rror .esi<e.'ook hwnd 3nd f modSysTray. .T=/hat. .&ove lst=uddys.T=&essage.'eight .Scale2idth $ .hwnd mod.e"t f mod(eclaration.e"t 5\ resi<e controls 5F .hwnd3nable0.T=/hat.'eight V &e.T=/hat.&ove . lst=uddys.Show (o3vents Sign n 3nd Sub !rivate Sub 4ormX.T=&essage. picTray (isconnected &e.*(etect .T=&essage.'eight V .esi<e)/onst Seperator +s String V 6 f &e.'eight $ Seperator frame=uttons.Top V &e.+ddTray picTray.Te"t3nd f %n 3rror DoTo 0 f .T=&essage.*eft $ ?. lst=uddys.hwnd.*eft 5I .T=&essageXHey0p 0.2indowState V vb&inimi<ed Then &e.2idth $ Seperator .Saved%ptions.T=/hat.2idth V frm&ain.'eight $ Seperator d Q lst=uddys. lst=uddys.T=/hat.*eft $ ?.T=&essage.'eight ME shp=uddy.SelStart V *en).2idth M E. &e.2idth M E.rtfO .+dd2indow)&e.*eft $ lst=uddys.'eight M E shp&essage.Scale2idth $ . OO.T=/hat.esi<e.'eight $ Status=ar.*eft $ ?.T=&essage.esi<e.'eight $ Status=ar.Top 5 !lace$Shapes shp/hat.T=/hat.2idth V frm&ain. 0 3nd Sub . .3nd 2ith 5.Top $ ?.*oad4ile +pp!ath T O]history]O T Det(ate T O.Save'istory Then .'eight M E .2idth $ Seperator d E frame=uttons.Top $ ?.&ove .*eft V lst=uddys.T=&3SS+D3 4ill ntelliSense2ith+dmin.2idth $ Seperator d E lst=uddys.T=/hat.esume .T=&essage.esume .&inX'eight V EC0 mod.Scale'eight $ .T=/hat.T=/hat.Scale'eight $ .ot s (3 Then /all o&agnetic2nd. .2idth M E.Scale2idth $ lst=uddys.&inX2idth V E00 mod.T=&essage.

(isable0.Smilie+rray) nde"-.0nhook o&agnetic2nd.4orms 4rm. X =utton +s nteger.Save'istory Then &k(ir +pp.othing ...emove2indow hwnd Set o&agnetic2nd V .Visible V 4alse 3nd Sub !rivate Sub imgSmilieX&ouse&ove) nde" +s nteger.T=/hat.4orms 0nload 4rm Set 4rm V .rtfO 3nd f %n 3rror DoTo 0 wsc.othing %n 3rror . True.!rivate Sub 4ormX0nload)/ancel +s nteger(im 4rm +s 4orm f mod(eclaration.Saved%ptions.b*oadedfrmTransfer Then frmTransfer.'ide .*(etect mod.esume .b*oadedfrmVoice Then 0nload frmVoice 3nd f 4or 3ach 4rm n V=.esi<e.T='ighlight.SelTe"t V mod(eclaration.Save%ptions modSysTray./lose 5 3nd 5 This is the 3nd 5 my only friend the end 5 lalalalalalalalalalallalalla 3nd Sub !rivate Sub Dive0p+dmin)0sername +s String+ddTe"tTo.e"t 4rm mod4unctionsE.T= 0sername T O has abandoned its administrator privileges^O. 3vent/olor.3nabled V True 3nd f f mod(eclaration.emTray mod. X ./har/ode picSmilies/ontainer.Save4ile +pp!ath T O]'istory]O T Det(ate T O.e"t f mod(eclaration.e"t 4rm (o3vents 4or 3ach 4rm n V=. True 3nd Sub !rivate Sub imgSmilieX/lick) nde" +s nteger.!ath T O]historyO .tmr3nd.T=&essage.

SimpleTe"t V OThe server accepts the login re#uest.Visible V 4alse 3nd Sub !rivate Sub Hick)+dmin.=orderStyle V f)) V nde"-. True. ?... 3vent/olor. X 0sername +s String+ddTe"tTo. X I +s Single(im +s nteger 4or V 0 To imgSmilie. 0. 2rong !asswordUO (isconnected Sign n 3nd f 3nd f 3nd Sub .3nabled V 4alse Status=ar. True.ame +s String.D. ..ame T O hat O T 0sername T O gekicked^O.ame +s String.T= +dmin.ame T O has O T 0sername T O from Voice/hat gekicked^O. 3vent/olor.%T *%D . X F +s Single...3nabled V True /onnected 3lse 5. X 0sername +s String+ddTe"tTo. True 3nd Sub !rivate Sub *ogin)*oginString +s String5 \ 'ere./ount $ ? imgSmilie) -. f *oginString V OdenyO Then Status=ar.O 5 so .e"t 3nd Sub !rivate Sub is=utton?X/lick)picSmilies/ontainer. True 3nd Sub !rivate Sub HickVoice)+dmin.ST. the server sends back whether he has accepted 0sername 1 !assword f *oginString V OacceptO Then tmr*ogin..SimpleTe"t V OThe server did not accept the login re#uest.T= +dmin... sign$up process successfully $ from here is testing whether you are online tmr/onnection/heck.Shift +s nteger.

eceive V 4ilename f .T= 0sername T O hat seine +dministrator$!rivilegien wiedererlangt^O.Sending%r.SelStart V *en).ame T O has O T 0sername T O +dministrator privileges granted^O.%T. X &essage +s String..Te"tlst ntelliSense.D%. &sg=o" OIou can not send files to yourself^O.3/3 V .!rivate Sub *ogin+dmin)0sername +s String+ddTe"tTo. True 3nd Sub !rivate Sub lst=uddysX4ile(rag(rop)4ilename +s String(im To0ser +s String To0ser V lst=uddys.Selected temf *en=)To0ser. True 3nd Sub !rivate Sub &essage)0sername +s String..ot To0ser V mod(eclaration.+T %.. vb nformation 3lse 5.ame +s String..eceiving4ile V 4alse &sg=o" OThe soecified file does not e"ist^O.T=&essage.Det4ile*en)4ilename3nd f 3lse 5.!ath%f4ileToSend%r.T=&essage.T= +dmin.Sending%r.T=&essage.0sername Then mod(eclaration.T=&essage.3"tract4ilename)4ilename. True.D4 *3 V 4+*S310 f . 3vent/olor.eceiver%rSender V To0ser Send(ata OfileWO T To0ser T OWO T mod4unctions.Set4ocus 3nd Sub !rivate Sub &ake+dmin)+dmin.Visible V 4alse ntelliVisible V 4alse . True.S3.Te"t V O]]O T lst ntelliSense. vb nformation 3nd f 3nd f 3nd Sub !rivate Sub lst ntelliSenseX(bl/lick). mod(eclaration.. 3vent/olor..eceiving4ile Then &sg=o" OSend or receive a file already. X 0sername +s String+ddTe"tTo.. X +dmin +s String- .T OWO T mod4unctions.%T .%T .%T.( .*ist tems)lst=uddys.ot 4ile3"ists)4ilename.Sending%r.Then mod(eclaration.Te"t .O 3lse 5&%((3/*+.V 0 Then 3"it Sub f mod(eclaration.eceiving4ile V True mod(eclaration.

Sel4ontSi<e a4ont.ST %n 3rror DoTo eXTrap 4ont(ialog.Sel4ont.b/anceled V True Then 3"it Sub .nSi<e 5. a4ontf s4ont.e"t picSmilies/ontainer.Sel4ontSi<e V s4ont.4ont=old V . &essage.ame V .4ontSi<e V .Show 3nd Sub !rivate Sub mnu+udio+X/lick).Sel=old V s4ont.Sel/olor a4ont.T=&essage a4ont.Visible V 4alse frm+bout.TX/%.T= 0sername. )+dmin V OtrueO4lash+ndSound 3nd Sub !rivate Sub mnu+boutX/lick)%n 3rror .Sel/olor V s4ont.i!ointSi<e V ?E d ?0 2ith .4ont talic V .Sel4ont.Sel talic a4ont.4ont/olor V .ame a4ont.esume .un+udio+ssistant &e. 4alse.4ont0nderline V .sSelected4ont .l/olor .4ontStrikeThru V .5 \ one very normal message arrives5 +dd&essageTe"tTo.b=old .hwnd 3nd Sub !rivate Sub mnu/lose&essengerX/lick)0nload &e 3nd Sub !rivate Sub mnu4ileTransferX/lick)cmdSend4ileX/lick 3nd Sub !rivate Sub mnu4ontX/lick)(im s4ont +s Selected4ont (im a4ont +s 4%.SelStrikeThru a4ont.Sel0nderline s4ont V Show4ont)hwnd.Sel=old a4ont.ame V s4ont.4ont.

SelStrikeThru V s4ont..t"tO.hwnd.4ont.t"tO.T=&essage.4ont/olor V .S.4ont0nderline V .Sel0nderline V s4ont.4ont=old V .Sel4ontSi<e .T=&essage.ullString.Sel talic .Then Shell3"ecute hwnd. C 3lse &sg=o" O/ould 5help.+T %.Sel/olor .4ontSi<e V .T=&essage.Set4ocus mod(eclaration.b/anceled V True Then 3"it Sub .b0nderline . vb. vb.Sel talic V s4ont.Set4ocus eXTrap7 3nd Sub !rivate Sub mnu4ont/olorX/lick)(im s/olor +s Selected/olor %n 3rror DoTo eXTrap s/olor.Saved%ptions.SelStrikeThru . vb.Sel/olor s/olor V Show/olor)&e.T=&essage.bStrike%ut 3nd 2ith 5.Saved%ptions.4ontStrikeThru V .ullString.4ont talic V .T=&essage.T=&3SS+D3 5 the same in the struct speciher !rofile 2ith mod(eclaration.Sel0nderline 3nd 2ith 5&%((3/*+. .Sel/olor V s/olor.T=&essage.S+V3(%!T %.T=&essage.oSelected/olor eXTrap7 3nd Sub !rivate Sub mnu'elpX/lick)f 4ile3"ists)+pp!ath T O]help.T=&essage.Sel/olorf s/olor.ame .4ont .Sel=old 5.oSelected/olor .T=&essage.t"t5 not available^O.T .Show . vb/ritical 3nd f 3nd Sub !rivate Sub mnu*og%utX/lick)(isconnected Sign n 3nd Sub !rivate Sub mnu&%ptionsX/lick)frm%ptions.4%.b talic .T=&essage.4ont/olor V s/olor.ullString.4ont..T=&essage.oSelected/olor V .Sel4ont. +pp!ath T O]help.T=&essage.ame V .

Visible V 4alse 3nd Sub !rivate Sub mnu%ther0serX/lick)picSmilies/ontainer.esume .ot b*oadedfrmVoice Then .Visible V 4alse f .=orderStyle V 0 .Visible V .Visible 4or V 0 To imgSmilie.udgeX/lick 3nd Sub !rivate Sub mnu%ptionsX/lick)picSmilies/ontainer.e"t picSmilies/ontainer.Visible V 4alse 3nd Sub !rivate Sub mnuVoice/hatX/lick)picSmilies/ontainer.3nd Sub !rivate Sub mnu.ot picSmilies/ontainer.e"t picSmilies/ontainer./ount $ ? imgSmilie) -.udgeX/lick)cmd.Set4ocus 3nd Sub !rivate Sub mnuV=&essengerX/lick)picSmilies/ontainer.Visible V 4alse 3nd Sub !rivate Sub mnuprivate&essageX/lick)cmd!rivate&essageX/lick 3nd Sub !rivate Sub mnuSend&essageX/lick)cmdSendX/lick 3nd Sub !rivate Sub mnuSmiliesX/lick)(im +s nteger %n 3rror .

T O them has a 5.Show %n 3rror DoTo 0 3nd Select 3nd Sub . X +dmin +s String5 \ confirmation that it has sent a nudge to jmd so that we ourselves also 5 to suffer a bit.udge5 gesendetO. 3vent/olor. ?000 3nd Sub !rivate Sub picSmilies/ontainerX*ost4ocus)picSmilies/ontainer. X F +s Single.Send(ata OaskvoiceO 3nd f 3nd Sub !rivate Sub .Visible V 4alse 3nd Sub !rivate Sub picTrayX&ouse&ove)=utton +s nteger.T= 0sername T f)+dmin V OtrueO. we also raised the nudge !laySound . True !laySound .udge)0sername +s String. C. True. ?000 3nd Sub !rivate Sub .2indowState V vb.ormal frm&ain.udgeSend%r.eceived +ddTe"tTo. O )+dministrator-O. X I +s SingleStatic lng&sg +s *ong lng&sg V F 1 Screen. True mod4unctions.Twips!er!i"elF Select /ase lng&sg /ase 2&X*=0TT%. X +dmin +s String5 \ . C.T= OSie haben einen 5.Shake4orm frm&ain. True.(=*/*H %n 3rror .udge5 an O T 0sername T O gesendetO. OO. X Shift +s nteger.e"t frm&ain. 3vent/olor.eceived mod4unctions.esume .udge one arrives +ddTe"tTo.udgeSend%r.udge=)0sername +s String.Shake4orm frm&ain.

Saved%ptions.ame V mod(eclaration.Visible V 4alse ntelliVisible V 4alse .3nabled V .4ont. True.Te"tlst ntelliSense.T=&essageXHey(own)Hey/ode +s nteger.+nd ntelliVisible Then .Te"t .Sel4ont. X &essage +s String. X Shift +s ntegerf )Hey/ode V QE %r Hey/ode V ?Q.4ontSi<e .4ont0nderline .Saved%ptions.T=&essage.4ont.4ont. . )+dmin V OtrueO5+ddTe"tTo.0sername T OZYSie haben eine private &essage O T 0sername T O sentZ O T &essage.Sel/olor V mod(eclaration.ame .T=&essage.T=/hat 3nd Sub !rivate Sub rtbmessageX/hange)cmdSend.SelStart V *en).!rivate Sub !rivate&essage)0sername +s String. True.4ont.Sel4ontSi<e V mod(eclaration.Saved%ptions. X +dmin +s String5 \ a private message to come +dd&essageTe"tTo.T= OYO T mod(eclaration. X &essage +s String.T=&3SS+D3 3nd f 3nd Sub !rivate Sub .Te"t V O]]O T lst ntelliSense.T=/hatX/hange)mod4unctions.T=&essage. &essage. )+dmin V OtrueO4lash+ndSound 3nd Sub !rivate Sub !rivate&essage=)0sername +s String. )+dmin V OtrueO-.4ont talic .4ont.T=&essage.V 0 Then 2ith .Saved%ptions.Saved%ptions.0sername.4ont. X +dmin +s String5 \ /onfirmation that one has received a private message +dd&essageTe"tTo.V 0 f *en=).Te"t.ot *en=).Te"t.Sel=old V mod(eclaration. &essage.4ont.4ont/olor . True 4lash+ndSound 3nd Sub !rivate Sub .T=&essage .4ont=old .Saved%ptions..4ontStrikeThru 3nd 2ith 5.Saved%ptions.SelStrikeThru V mod(eclaration.4ont.Sel0nderline V mod(eclaration.T= mod(eclaration.T= 0sername.Sel talic V mod(eclaration.T=&essage.T= .efresh.

(.Selected)4ound.Visible V True 3lse 5 .V Te"t3ntered Then f .*ist) -.*ist) -.f Hey/ode V QE Then Hey/ode V 0 3nd f 3nd Sub !rivate Sub . lst ntelliSense.. *en)..e"t f 4ound V $? Then ntelliVisible V 4alse 5 wenns can not be found in the bo". E Then Te"t3ntered V &ide).V *en)Te"t3ntered.3nabled V 4alse tmrType.T=&essageXHey!ress)Hey+scii +s ntegerf Hey+scii V ?Q Then cmdSendX/lick Hey+scii V 0 3"it Sub 3nd f f .%T 4%0.V O]]O Then ntelliVisible V True 5 general map )]] ]] at the start4ound V $? 4or V 0 To lst ntelliSense.T=&essage.*ist/ount $ ? f *efte)lst ntelliSense.T=&essage.T=&3SS+D3.*eft M mod4unctions.DetT/ursI M E lst ntelliSense.Te"t-3nd f f *efte).ot tmrType.T3** V S =*3 V 4+*S310 . Q.Top M mod4unctions.3nabled Then Send(ata OtypingWtrueO 3nd f tmrType..T=&essage.T=&essage..Te"t.T=&essage.%T *34Te).Te"t.T3FT.*eft V .V True 3nd f 3lse 5.3nabled V True 3nd Sub !rivate Sub .. ntelliVisible V 4alse 3nd f f ntelliVisible Then lst ntelliSense.ot *en)lst ntelliSense. then no 3lse 5.Top V .DetT/ursF M B lst ntelliSense.Then 4ound V 3nd f 3"it 4or 3nd f . X Shift +s nteger(im Te"t3ntered +s String (im 4ound +s nteger (im +s nteger f *en).T=&essageXHey0p)Hey/ode +s nteger.Te"t. *en)Te"t3ntered-.T=&essage.. E.

State V @ Then wsc. A? 3nd f 3nd Sub !rivate Sub tmr/onnectXTimer)5 \ it is ?0sec long tried to connect to Time%ut/ V Time%ut/ M ? f wsc.O ...Server !..Show vb&odal f ..%T .O (isconnected Sign n 3nd f 3nd Sub !rivate Sub tmr/onnection/heckXTimer)5 \ once the connection is this timer is active and check whether they still 5 is connected to the server f wsc.Sign n V 4alse frm/onnect..e#uest.Send(ata Te"t T Seperator 3nd f 3nd Sub !rivate Sub Sign n)mod(eclaration./onnect mod(eclaration.. Send *ogin .State V A Then Status=ar.%T.SimpleTe"t V OThey were separated from the server.elation.3nabled V 4alse tmr*ogin.0sername wsc.O tmr/onnect.ot mod(eclaration.0sername T OWO T mod(eclaration.0ser!ass 3"it Sub 3nd f f Time%ut/ V ?0 Then Status=ar. /aption V OV=&essenger $ .State V 0 %r wsc....egistered as O T mod(eclaration..Visible V 4alse 3nd f 3nd Sub !ublic Sub Send(ata)Te"t +s Stringf wsc.lst ntelliSense.SimpleTe"t V O t could not be contacted.SimpleTe"t V O.State V @ Then Time%ut/ V 0 Status=ar.3nabled V True Send(ata OloginWO T mod(eclaration.Sign n Then 0nload &e 3lse 5.

Seperator. X %nline +s String5 \ The server sends the list of users 5 he does so only when a new user has logged on (im n*st +s =oolean ..eceive=uffer V &ide). but it iss(im temp +s *ong (o 2hile nStr)?. and that is precisely verarbeitei in this loop.. Then there are big problems if (uring these (erivative 2ork.eceive=uffer..O (isconnected Sign n 3nd Sub !rivate Sub tmrTypeXTimer)tmrType. ? Then 4i"ed(ata+rrival *efte).3nabled V 4alse Send(ata OtypingWfalseO 3nd Sub !rivate Sub 0pdate*st)0sername +s String.. it goes to a message. 5+ccepted.. Seperatorf temp . .eceive=uffer.. 5=ut in 2insock (ataX+rrival.eceive=uffer..3nabled V 4alse Status=ar. will be disabled once the login has been accepted by the server 5 and enabled as soon as one is connected tmr*ogin. temp M *en)Seperator-*oop 3nd Sub !rivate Sub tmr*oginXTimer)5 \ + timeout timer . a 5+nother packet arrived^ )sounds funny.eceive=uffer.(isconnected Sign n 3nd f 3nd Sub !rivate Sub tmrDet(ataXTimer)5The check comes in a timerU 52'IU 5 t5s simple .. 0 temp V nStr)?.SimpleTe"t V OThe server is not responding to the login re#uest. . temp $ ?3nd f .

e"t f .+dd tem 0sername 3lse f .0sername T O.M ?3 V 0=ound)TypingTyping)3-.e(im !reserve Typing)0=ound)Typing.3.*ist tems) .Typing V ) sTyping V OtrueO5 T%(% 3V0 4or V ? To 0=ound)Typingf Typing) -.(im +s nteger (im 3 +s nteger (im Selected0ser +s String n*st V 4alse 5 you never know.ot nType+rray Then . X sTyping +s String.. .0sername Then nType+rray V True 3V 3"it 4or 3nd f . lst=uddys..*ist/ount f lst=uddys.Typing Then Strte"t V Strte"t T Typing) -.ot n*st Then lst=uddys. *en)Strte"t.emove )33nd f f %nline V OtrueO Then !laySound 0ser%nline 3nd Sub !rivate Sub 0serTyping)0sername +s String. +dmin +s String(im +s nteger (im 3 +s nteger (im nType+rray +s =oolean (im Strte"t +s String 4or V ? To 0=ound)Typingf 0sername V Typing) -.$ ?f 3 V ? Then Strte"t V Strte"t T O makes an entryO 3lse 5.ot 3 V 0 Then Strte"t V *efte)Strte"t..%T 3.V 0sername Then n*st V True 3V 3"it 4or 3nd f ...e"t f .%T %. 4or V ? To lst=uddys.ot %nline V OtrueO +nd n*st Then 5.0sername V 0sername 3nd f Typing)3-.e"t f %nline V OtrueO +nd .O 3V3M? 3nd f .* ...

X /ancel(isplay +s =ooleanStatus=ar.. X =yVal 'elp4ile +s String. The e now gives the stay in the array 3nd Sub !rivate Sub Voice)0sername +s String. X (escription +s String. True 3lse +ddTe"tTo. +dmin +s Stringf Voice3nabled V OenabledO Then +ddTe"tTo.SimpleTe"t V O t could not be contacted. X =yVal Source +s String. X =yVal 'elp/onte"t +s *ong. there is an array.umber +s nteger.eceive=uffer T str(ata 3nd Sub !rivate Sub wscX3rror)=yVal . Voice3nabled +s String.. since the user only occurs once 5 $. True.Strte"t V Strte"t T O makes an entryO 3nd f 3nd f Status=ar.eceive=uffer V . True.O (isconnected Sign n 3nd Sub . 3vent/olor.T= 0sername T O has left the Voice /hatO. 3vent/olor.T= 0sername T O has entered the Voice /hatO. True 3nd f 3nd Sub !rivate Sub wscX(ata+rrival)=yVal bytesTotal +s *ong(im str(ata +s String wsc.Det(ata str(ata .SimpleTe"t V Strte"t 5 $. X =yVal Scode +s *ong.

S&reen !)'t *ogin .

&ain .

t .Sen" te.

S#ile! .

V'i&e &)$t .

ti'n .O.