More Subjects
Multi-User Chat Application Using Sockets In Java – Windows 32-bit Operating System
Multi-User Chat Application using Sockets in Java – Windows 32-bit Operating System
*Name*
School
Address
Phone
Abstract— Teleconferencing, is being used to connect ideas or people together around the world. This paper describes the implementation of a multiuser chat application using sockets in Java programming. The chat application is based on client-server model.
Keywords—sockets, chat application, multiuser, text, audio
Introduction
Figure SEQ Figure \* ARABIC1: Client-Server Map
Networking is a major branch of programming that is important to connecting users through devices. As such, many programming languages have multiple ways to form connections, that is users and servers or between peers. The multiuser chat application is an application through which the user can communicate with others connected in the same network area. This chat application was developed to only work in Windows O/S 32 bit and is programmed in Java. Transmission Control Protocol, also known as TCP, is a standard that defines how to establish and maintain a network conversation between two or more computers exchanging data. TCP works with the Internet Protocol (IP), which defines how computers send packets of data to each other ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"W2vwpYlB","properties":{"formattedCitation":"[1]","plainCitation":"[1]","noteIndex":0},"citationItems":[{"id":204,"uris":["http://zotero.org/users/6144444/items/AVXVBFVI"],"uri":["http://zotero.org/users/6144444/items/AVXVBFVI"],"itemData":{"id":204,"type":"article-journal","language":"en","page":"25","source":"Zotero","title":"The Pocket Guide to TCP/IP Sockets: C Version","author":[{"family":"Donahoo","given":"Michael J"},{"family":"Calvert","given":"Kenneth L"}]}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[1].
Figure 1 shown above demonstrates show clients are all connected to one main server computer that is having a public IP address on the server side. A client is a computer that requests services from a server computer. The clients however do not know each other’s IP addresses but just the server must have a public IP address for the server app to run. A computer that provides services to clients and controls access to hardware software and other resources is called a server. In this paper, it will mainly focus on how the application works and the tools which are used and why.
Literature review
This research study is supported by concepts and principles used in socket programming in a distributed computing environment.
Client Server Communication
Figure SEQ Figure \* ARABIC2: Client Server Model
Figure 1 shown above describes the use of client server model based on its request – reply protocol. In this model, the client directly sends request to the server asking for an appropriate service, and later server does the work and returns immediately the data or error code as a response back to the client. The server offers various services to the clients based on client’s request.
Sockets and Socket Programming
In distributed computing environment, client server application (consist of client program and server program) can be designed using socket programming. Figure 2 shown below shows a Socket which is a two-way communication link between client and server programs that are running in a network environment ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"F56ObKG0","properties":{"formattedCitation":"[2]","plainCitation":"[2]","noteIndex":0},"citationItems":[{"id":201,"uris":["http://zotero.org/users/6144444/items/Y9QQJJ6R"],"uri":["http://zotero.org/users/6144444/items/Y9QQJJ6R"],"itemData":{"id":201,"type":"paper-conference","abstract":"This paper introduces the application of the client/server(C/S) mode, the concept and the programming principle of the socket based on C/S. The method of software design for the communication between the client, server-process using the socket mechanism is mainly analyzed, and gives examples of connection-oriented service program. The transmission layer can provide connection oriented to use TCP protocol, connectionless-oriented to use UDP protocol. There are two different kinds of services with different kinds of sockets. Only by understanding the characters of TCP protocol and UDP protocol, the service provided by the two protocols for application, can we know what deal with in these protocols, what need to deal with in application, can we easier compile vigorously and healthily, highly efficient client service program.","container-title":"2009 Pacific-Asia Conference on Circuits, Communications and Systems","DOI":"10.1109/PACCS.2009.89","event":"2009 Pacific-Asia Conference on Circuits, Communications and Systems","note":"ISSN: null","page":"775-777","source":"IEEE Xplore","title":"The Socket Programming and Software Design for Communication Based on Client/Server","author":[{"family":"Xue","given":"Ming"},{"family":"Zhu","given":"Changjun"}],"issued":{"date-parts":[["2009",5]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[2]. It has an effective communication mechanism between two computers.
In Java programming, socket classes are used to represent connections between the client and the server. Java provides two classes for this purpose: Socket and the ServerSocket. These sockets connect two programs and implement two sides of the program (client and server).
The client server program allows the user to run the client software to create a query ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"oKOAAZZM","properties":{"formattedCitation":"[3]","plainCitation":"[3]","noteIndex":0},"citationItems":[{"id":206,"uris":["http://zotero.org/users/6144444/items/YWLKN62F"],"uri":["http://zotero.org/users/6144444/items/YWLKN62F"],"itemData":{"id":206,"type":"patent","authority":"United States","call-number":"US09/087,122","number":"US6119126A","title":"Object-relational query builder which determines existence of structures from information loaded from the server and cached locally on the client computing system","URL":"https://patents.google.com/patent/US6119126A/en","author":[{"family":"Yee","given":"David R."},{"family":"Gaunce","given":"David Brennan"}],"accessed":{"date-parts":[["2019",12,18]]},"issued":{"date-parts":[["2000",9,12]]},"submitted":{"date-parts":[["1998",5,29]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[3]. The client connects and sends the query to the identified server through the use of socket (client side). The server once received the request from the client analyzes the query and sends the result directly to the client.
61912583185Port
In computer networking, a port represents a communication channel or endpoint. A port can be either physical or virtual. In Figure 3 shown below shows a computer to computer connection identifies the IP addresses and ports.
Communication Protocol
There are two communication protocols that are commonly used in socket programming, the datagram communication and stream communication. The datagram communication protocol is popularly known as UDP (user datagram protocol) is considered a connectionless protocol. This means that every time the client sends datagram, it also requires them to send the local socket descriptor as well as the receiving socket’s address ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"uOHqfYcb","properties":{"formattedCitation":"[4]","plainCitation":"[4]","noteIndex":0},"citationItems":[{"id":195,"uris":["http://zotero.org/users/6144444/items/FBRQVXTJ"],"uri":["http://zotero.org/users/6144444/items/FBRQVXTJ"],"itemData":{"id":195,"type":"paper-conference","abstract":"Summary form only given. The paper describes a tool for black-box testing of UDP-based distributed Java programs. UDP provides little guarantee for correct delivery of data, and therefore requires the application to verify the integrity of communication according to its needs. Debugging such application is hard, since it is hard to create at will bad network conditions. The tool describes here creates an intermediary layer above the Java API which simulates network noises. It therefore enables stress-testing the application even on a flawless network environment. We describe a field experience of testing an application, using the tool vs. using specially-written testing code. We show the two approaches to be complementary.","container-title":"18th International Parallel and Distributed Processing Symposium, 2004. Proceedings.","DOI":"10.1109/IPDPS.2004.1303342","event":"18th International Parallel and Distributed Processing Symposium, 2004. Proceedings.","note":"ISSN: null","page":"267-","source":"IEEE Xplore","title":"Automatic simulation of network problems in UDP-based Java programs","author":[{"family":"Farchi","given":"E."},{"family":"Krasny","given":"Y."},{"family":"Nir","given":"Y."}],"issued":{"date-parts":[["2004",4]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[4]. However, the stream communication protocol, popularly known as TCP (transfer control protocol) is a connection-oriented protocol ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"UdwaIVnU","properties":{"formattedCitation":"[5]","plainCitation":"[5]","noteIndex":0},"citationItems":[{"id":198,"uris":["http://zotero.org/users/6144444/items/S5DYYHNI"],"uri":["http://zotero.org/users/6144444/items/S5DYYHNI"],"itemData":{"id":198,"type":"book","abstract":"The networking capabilities of the Java platform have been extended considerably since the first edition of the book. This new edition covers version 1.5-1.7, the most current iterations, as well as making the following improvements:The API (application programming interface) reference sections in each chapter, which describe the relevant parts of each class, have been replaced with (i) a summary section that lists the classes and methods used in the code, and (ii) a \"gotchas\" section that mentions nonobvious or poorly-documented aspects of the objects. In addition, the book covers several new classes and capabilities introduced in the last few revisions of the Java platform. New abstractions to be covered include NetworkInterface, InterfaceAddress, Inet4/6Address, SocketAddress/InetSocketAddress, Executor, and others; extended access to low-level network information; support for IPv6; more complete access to socket options; and scalable I/O. The example code is also modified to take advantage of new language features such as annotations, enumerations, as well as generics and implicit iterators where appropriate.Most Internet applications use sockets to implement network communication protocols. This book's focused, tutorial-based approach helps the reader master the tasks and techniques essential to virtually all client-server projects using sockets in Java. Chapter 1 provides a general overview of networking concepts to allow readers to synchronize the concepts with terminology. Chapter 2 introduces the mechanics of simple clients and servers. Chapter 3 covers basic message construction and parsing. Chapter 4 then deals with techniques used to build more robust clients and servers. Chapter 5 (NEW) introduces the scalable interface facilities which were introduced in Java 1.5, including the buffer and channel abstractions. Chapter 6 discusses the relationship between the programming constructs and the underlying protocol implementations in more detail. Programming concepts are introduced through simple program examples accompanied by line-by-line code commentary that describes the purpose of every part of the program. No other resource presents so concisely or so effectively the material necessary to get up and running with Java sockets programming.Focused, tutorial-based instruction in key sockets programming techniques allows reader to quickly come up to speed on Java applications.Concise and up-to-date coverage of the most recent platform (1.7) for Java applications in networking technology.","ISBN":"978-0-08-056878-2","language":"en","note":"Google-Books-ID: lfHo7uMk7r4C","number-of-pages":"193","publisher":"Morgan Kaufmann","source":"Google Books","title":"TCP/IP Sockets in Java: Practical Guide for Programmers","title-short":"TCP/IP Sockets in Java","author":[{"family":"Calvert","given":"Kenneth L."},{"family":"Donahoo","given":"Michael J."}],"issued":{"date-parts":[["2011",8,29]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[5]. This means that in order to establish communication over this type of protocol, a connection must be established first between two identified sockets. One socket listens for a connection request (main responsibility of the server) and the other socket asks for a connection (main responsibility of the client) in order to establish connections. Once they have already established the connection, it can be used to transmit data in both directions.
Methodology
The chat application was designed using socket programming in Java Eclipse supported by Java Media Framework. The client-server-based application has many functions. The two programs (client and server) were simulated, demonstrated and analyzed.
Implementation of Multi-user Chat Application
Through the development of a multi-user chat system, user can easily communicate with each other in an organization. Through the chat application, users can avail the facility of either private or group chat. This chat application also has ability to send over file while communicating through messages. Another objective achieved is the storage and archive of sent messages ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"Je2BOl56","properties":{"formattedCitation":"[6]","plainCitation":"[6]","noteIndex":0},"citationItems":[{"id":"9HKQjNRt/AOPxHEwI","uris":["http://zotero.org/users/local/YgsdZK9k/items/JRNRWRJS"],"uri":["http://zotero.org/users/local/YgsdZK9k/items/JRNRWRJS"],"itemData":{"id":683,"type":"webpage","title":"Design & Implement of Chat System Based on Java Socket--《Microprocessors》2010年05期","URL":"http://en.cnki.com.cn/Article_en/CJFDTotal-WCLJ201005019.htm","accessed":{"date-parts":[["2019",12,17]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[6]. The design utilizes the concepts of object-oriented programming, and the architecture of C/S ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"zUR7KmO8","properties":{"formattedCitation":"[7]","plainCitation":"[7]","noteIndex":0},"citationItems":[{"id":205,"uris":["http://zotero.org/users/6144444/items/98PWF8JN"],"uri":["http://zotero.org/users/6144444/items/98PWF8JN"],"itemData":{"id":205,"type":"paper-conference","abstract":"We introduce a simple, programming language independent rule (known in-house as the Law of Demeter™) which encodes the ideas of encapsulation and modularity in an easy to follow form for the object-oriented programmer. You tend to get the following related benefits when you follow the Law of Demeter while minimizing simultaneously code duplication, the number of method arguments and the number of methods per class: Easier software maintenance, less coupling between your methods, better information hiding, narrower interfaces, methods which are easier to reuse, and easier correctness proofs using structural induction. We discuss two important interpretations of the Law (strong and weak) and we prove that any object-oriented program can be transformed to satisfy the Law. We express the Law in several languages which support object-oriented programming, including Flavors, Smalltalk-80, CLOS, C++ and Eiffel.","collection-title":"OOPSLA '88","container-title":"Conference Proceedings on Object-oriented Programming Systems, Languages and Applications","DOI":"10.1145/62083.62113","event-place":"New York, NY, USA","ISBN":"978-0-89791-284-6","note":"event-place: San Diego, California, USA","page":"323–334","publisher":"ACM","publisher-place":"New York, NY, USA","source":"ACM Digital Library","title":"Object-oriented Programming: An Objective Sense of Style","title-short":"Object-oriented Programming","URL":"http://doi.acm.org/10.1145/62083.62113","author":[{"family":"Lieberherr","given":"K."},{"family":"Holland","given":"I."},{"family":"Riel","given":"A."}],"accessed":{"date-parts":[["2019",12,18]]},"issued":{"date-parts":[["1988"]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[7]. The Socket and the multi-thread technology are the core technology of the design. It implements the MVC design patterns. This design is realized through Eclipse platform ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"4axtT9MX","properties":{"formattedCitation":"[8]","plainCitation":"[8]","noteIndex":0},"citationItems":[{"id":"9HKQjNRt/f0bQjiig","uris":["http://zotero.org/users/local/YgsdZK9k/items/T25EK7Y3"],"uri":["http://zotero.org/users/local/YgsdZK9k/items/T25EK7Y3"],"itemData":{"id":685,"type":"webpage","title":"Design and Realization of Instant Messaging Software Based on Socket Technology--《Computer Development & Applications》2011年05期","URL":"http://en.cnki.com.cn/Article_en/CJFDTotal-DNKF201105023.htm","accessed":{"date-parts":[["2019",12,17]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[8].
Process of Multi-user Chat Application
The server continuously accepts the request from the client server for a connection ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"meANnFgN","properties":{"formattedCitation":"[9]","plainCitation":"[9]","noteIndex":0},"citationItems":[{"id":194,"uris":["http://zotero.org/users/6144444/items/4GIYHBZE"],"uri":["http://zotero.org/users/6144444/items/4GIYHBZE"],"itemData":{"id":194,"type":"article-journal","abstract":"As an alternative to the older communication meth-ods like telephony and telegraph, chat applications are more popularly used for communication. These applications come with advanced features that enable the users to use it for different applications. The immediate requirement is to be able to exchange text messages however recent applications also provide support for multimedia content exchange. Free Voice is a web application to facilitate communication with different departments within an organization. This system is controlled by the users and its security is autonomously managed. The communicating parties authenticate each other before exchanging messages. Using this application the user can login and select the department to which message has to be sent. It provides an alternative to send messages publicly or privately. Each category will have a category owner. Response to any message can be provided by the respective category owner. It also provides faster searching by applying filters. The application will be governed by an administrator who will have access to all messages and categories.","language":"en","page":"5","source":"Zotero","title":"International Journal of Scientific Research in Computer Science, Engineering and Information Technology","issued":{"date-parts":[["2018"]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[9]. After every request is accepted, a new thread is assigned for communication. The name of the client is stored into a vector which keeps a track of devices with an established connection. The thread is stored with the correspondent request. This vector can determine the recipient through the helper class. The messages are delivered to the clients respectively as the streams are handled by the vector. The Start () method is invoked for the communication. As the string is received to the handler, it is broken into two parts; message and the information of recipient. The handler searches the name of the recipient stored as the vector through the list of clients having an established connection with the server. If the name of the recipient is stored in the list, the message is sent to the recipient with the name of the sender in its header.
Implementation in Java
The feasibility and advantage of implementing the design in Java is that the sockets include built-in input streams and output streams. When the Java program is written to communicate over a network, it indicates that the coding is done at the application layer. Another advantage of using Java for this application is that it is specifically designed in a way that it can be used in Internet’s innovative environment. It can also be used to develop end to end applications. These applications can be run on a single computer as well as can be distributed among multiple clients and servers over a network.
Implementation of Multi-user Chat Application in JAVA
The multiuser java chat application is developed in Java while using a client server architecture, based on a layered approach ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"NhnTBf9F","properties":{"formattedCitation":"[10]","plainCitation":"[10]","noteIndex":0},"citationItems":[{"id":208,"uris":["http://zotero.org/users/6144444/items/TN7X8E65"],"uri":["http://zotero.org/users/6144444/items/TN7X8E65"],"itemData":{"id":208,"type":"webpage","container-title":"Communications of the ACM","language":"English","title":"Client-server computing: time shared computing","title-short":"Client-server computing","URL":"https://link.galegroup.com/apps/doc/A12340664/AONE?sid=lms","author":[{"family":"Sinha","given":"Alok"}],"accessed":{"date-parts":[["2019",12,18]]},"issued":{"date-parts":[["1992",7,1]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[10]. This is developed and implemented in Java while using API’s of Java network and Java swing. The socket of server is developed through java multithread API’s, encryption API’s and java network API’s. The client is connected to server and then the server is responsible for sending messages to other clients which are connected to it. For secure transmission, the messages should be encrypted through one of the algorithms of public key infrastructure. Through jdbc API’s the messages are archived and retrieved when needed. All the information is stored and then retrieved back from data base when required, using the SQL statements.
Application Concepts
The application concept of this project is to develop such a system which can facilitate communication among users working at same place or even far away. This application strives to provide the user private chat, group chat, share files while sending other messages. In addition to this, it also stores the communicated messages. It also allows to download an application which is installed on local system. The user can easily communicate in a safer way.
a. JMF
The Java Media Framework (JMF) is a Java library that enables audio, video and other time-based media to be added to Java applications and applets ADDIN ZOTERO_ITEM CSL_CITATION {"citationID":"Q1zwxAD2","properties":{"formattedCitation":"[11]","plainCitation":"[11]","noteIndex":0},"citationItems":[{"id":200,"uris":["http://zotero.org/users/6144444/items/B6UZ3DE2"],"uri":["http://zotero.org/users/6144444/items/B6UZ3DE2"],"itemData":{"id":200,"type":"book","abstract":"From the Publisher:Coauthored by members of Intel's Java Media Framework development team, this book shows you how to set up a JMF development environment, how to choose the development toolkit that's right for you, and how to set up the SDK. With the help of numerous working examples - including three complete quick-start web applets and a video JavaBean - you will learn basic and advanced multimedia Java programming. An extensive annotated reference to the Java Media Player API provides programmers with an invaluable guide to the classes and interfaces of JMF.","event-place":"New York, NY, USA","ISBN":"978-0-471-25169-9","publisher":"John Wiley & Sons, Inc.","publisher-place":"New York, NY, USA","source":"ACM Digital Library","title":"Programming with the Java Media Framework","author":[{"family":"Sullivan","given":"Sean"},{"family":"Winzeler","given":"Loren"},{"family":"Brown","given":"Deanna"},{"family":"Deagen","given":"Jeannie"}],"issued":{"date-parts":[["1998"]]}}}],"schema":"https://github.com/citation-style-language/schema/raw/master/csl-citation.json"}[11]. This optional package, which can capture, play, stream and transcode multiple media formats, extends the Java Platform, Standard Edition (Java SE) and allows development of cross-platform multimedia applications.
b. JMF 2.1.1e
JMF 2.1.1e is used to run JMF for Windows Operating System. JMF for Windows is an optimized implementation of JMK that contains class files and native libraries for running JMF players.
Main User Interface
The main user interface in the multi-client chat application can be determined and designed by using the java development kit 8 as it provides an extended functionality of inheritance of interfaces while implementation, but the design of a completely original interface is yet not supported as it becomes a very arduous task to complete and the front-end becomes a very technically taxing job to do.
Socket Programming Style
Socket programming is an approach in network implementation in which two nodes are connected so that they can communicate with each other. They, however do not carry an equal relationship. The relationship is known as a client/server relationship in which server becomes the listener while the client reaches out to the server for information. Such a communication infrastructure is used extensively nowadays in the field of software development. The term “socket” has been coined as one end-point of a two-way communication link between two programs running on the network. Generally, a socket is identified by a port number and an IP address. In a multi-client chat application, built-in protocols are generally used to establish connections but there are frameworks available which allow you to characterize sockets manually i.e. by defining their port numbers and IP addresses.
Advantages and Disadvantages of using a multiuser chat application
200 words
Advantages
Commercial value: A well-developed multi-client chat app that provides data encryption is very much in demand as new data leakages are being discovered in the already built infrastructures every other day.
Users can personalize their profiles and make the app as per their own liking. They can even change the color of the app interface if they deem it necessary.
The market for multi-chat applications is enormous and any slight popularity in the usage of an app can generate tremendous revenues.
A single server app, that does not cost a lot can provide a large number of services to clients.
Disadvantages
Cyber-attacks: An unguarded server is a very highly prone to cyber-attacks such as distributed denial of service attack or a distributed denial of service attack. The biggest issue with such attacks is the fact that these attacks are very easy to generate but they are very expensive to stop. DOS mitigation software is in the market but it provides a very cost intensive solution to the problem especially if you are a new startup.
Your whole app is based on a single server and if that one server malfunctions, your whole startup will come crashing down on your head. Cyber-security professionals hired for the protection of such a server can be very expensive.
conclusion
In this research paper, we have discussed the concept, design and development of a multi-chat application using java. The java media framework provides for options to integrate data options such as photo, video etc. The java media framework is used in the backend of this multi-chat infrastructure. The overall interface is developed using the java development toolkit with the implementation style being that of socket programming so that this application can provide support to already existing protocols in the networking world. The data is accessed and sent using a TCP/IP model in which the role of client and server tends to switch multiple times during the route of communication. The functionality of two-way communication is provided using the already existing networking protocols in which data is the main object of interest.
References
ADDIN ZOTERO_BIBL {"uncited":[],"omitted":[],"custom":[]} CSL_BIBLIOGRAPHY[1]M. J. Donahoo and K. L. Calvert, “The Pocket Guide to TCP/IP Sockets: C Version,” p. 25.
[2]M. Xue and C. Zhu, “The Socket Programming and Software Design for Communication Based on Client/Server,” in 2009 Pacific-Asia Conference on Circuits, Communications and Systems, 2009, pp. 775–777.
[3]D. R. Yee and D. B. Gaunce, “Object-relational query builder which determines existence of structures from information loaded from the server and cached locally on the client computing system,” US6119126A, 12-Sep-2000.
[4]E. Farchi, Y. Krasny, and Y. Nir, “Automatic simulation of network problems in UDP-based Java programs,” in 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings., 2004, pp. 267-.
[5]K. L. Calvert and M. J. Donahoo, TCP/IP Sockets in Java: Practical Guide for Programmers. Morgan Kaufmann, 2011.
[6]“Design & Implement of Chat System Based on Java Socket--《Microprocessors》2010年05期.” [Online]. Available: http://en.cnki.com.cn/Article_en/CJFDTotal-WCLJ201005019.htm. [Accessed: 17-Dec-2019].
[7]K. Lieberherr, I. Holland, and A. Riel, “Object-oriented Programming: An Objective Sense of Style,” in Conference Proceedings on Object-oriented Programming Systems, Languages and Applications, New York, NY, USA, 1988, pp. 323–334.
[8]“Design and Realization of Instant Messaging Software Based on Socket Technology--《Computer Development & Applications》2011年05期.” [Online]. Available: http://en.cnki.com.cn/Article_en/CJFDTotal-DNKF201105023.htm. [Accessed: 17-Dec-2019].
[9]“International Journal of Scientific Research in Computer Science, Engineering and Information Technology,” p. 5, 2018.
[10]A. Sinha, “Client-server computing: time shared computing,” Communications of the ACM, 01-Jul-1992. [Online]. Available: https://link.galegroup.com/apps/doc/A12340664/AONE?sid=lms. [Accessed: 18-Dec-2019].
[11]S. Sullivan, L. Winzeler, D. Brown, and J. Deagen, Programming with the Java Media Framework. New York, NY, USA: John Wiley & Sons, Inc., 1998.
More Subjects
Join our mailing list
@ All Rights Reserved 2023 info@freeessaywriter.net