The New Brew-CQ Synchronous Sockets and Threading

Size: px
Start display at page:

Download "The New Brew-CQ Synchronous Sockets and Threading"

Transcription

1 The New Brew-CQ Synchronous Sockets and Threading Server Topology: The Brew-CQ server is an application written in the new.net compilers from Microsoft. The language of choice is Visual Basic. The purpose of this application is to demonstrate how a chat server (such as MSN Messenger and Brew-CQ) works.there are a couple of things that the server must do. Firstly, it should monitor all client connections, accepting and closing, maintaining a list of all logged on client. It must maintain an up to date list of logged on client on each of the logged on client applications. Hence, when a client first logs on to the server his name must be added to the list, then the up to date list must be distributed to all clients. Conversely, when a client logs off the server the list must be updated and then distributed to all clients still logged on to the server. The second thing that the server provides is a message relay from client to client. This is different from some chat programs in that they have server/client applications, where we are using a straight server. So, we accept one clients message and send it to the appropriate other client. In the next sections I discuss some of the specific programming used to accomplish this application. Listen to the Music: The main differnce from a server and a client is that the server listens for client trying to connect to it and then either accept or reject the connection request. The server uses a listening synchronous socket which prompts us to write a thread to constantly keep the server listening while allowing the applilcation to providing other services. The listen instruction once executed sits and waits for an attempt to connect. Once an connection is initiated by a client the thread continues execution. Within the listening thread a lot of things have to take place. Firstly, a new socket instance must be created and accept the connection. Then the list of clients has to be updated and then distributed to the all of the clients. The connecting client first must send the username for the client the list can then be updated. A small protocol had to implemented to dicern between a message or the list of names being sent to a client. Simply we tack on "names@" to the beginning of the namelist and "username@" at the beginnig of the message. Once the namelist has been created we can now send the list. The last thing to do is to create a thread for the new client to receive messages from that client. A thread is executed for each client connected. it was found we can run multiple instances of the thread procedure and they run independantly of the others. We suspend the execution of the listen thread for 200 milliseconds to allow the creation of the new thread and get its values before the listen thread changes these values. Finally, we loop back and start to listen for the next client that wishes to connect. Communication Breakdown: The server constantly polls all connections to see if they are still alive. If the connection exists and is currently OK the connection thread does nothing. However, if the connection does not respond the server kills the thread associated with that client. It also updates the connection list and ditributes the new list to all still connected client. Sounds great, But! This method wish in previous versions of Visual Studio could be accomplished. In.Net however, the Poll method return the status of the socket and no combination of its returned results can tell you if the remote socket diconnects. The Poll method would continually drop the connection because the thread that is polling the connection would pick up the selectread as true and the bytesavailable as zero as soon as the receiving thread had read all of the message, this is the closest combination to tell if the connection had been dropped. The other method to monitor the connection is with the Connected property, which is true when connected and false when disconnected. Wow, problem solved! Well,

2 not quite. The Connected property is updated after a socket IO event, which means you always lose your last message before the property is updated. Too bad the Poll method is not an IO event. Solution, error trapping and sending disconnect messages. Each client thread and the listening thread have on error commands to trap errors that occur. Are You Receiving Me: Each client when connected has a thread created for it that is constantly ready to receive messages. The thread is created within the listening thread and is aborted in the connection thread. This thread monitors a specific client connection and waits until a message has been sent. The server receives the message and reads the first bit of the message to find the destination client. Once it has determined what the destination it looks up the socket instance of that client and sends the message off to the appropriate client. It then continues to listen for another message. Form Layout: The layout of the form is simple. There are two list boxes, one for the names of the connected clients, the other the corresponding list of ip addresses of each client. One of these list boxes are redundant, but it was a debugging tool more than anything. The only other component on the page is the exit button which aborts all running threads and terminates the application. The list boxes are called conlist and namelist, the exit button is called exitbutton. This program written for ENG3553 Networking by Bruce Misner 2004 Demonstrates synchronous sockets and threading This is the Server Application Imports System Imports System.Object Imports System.Net Imports System.Net.Sockets Imports System.Net.SocketAddress Imports System.Threading Imports System.IO Imports System.Text Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " My Global Variables

3 by Brew-C Dim listenthread As Thread Dim conthread As Thread Dim clithread(50) As Thread Dim ipaddress As ipaddress Dim newcon As Integer Dim tester As Boolean Dim ssock(50) As Socket Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load conlist.items.clear() listenthread = New Thread(New ThreadStart(AddressOf Me.listenproc)) listenthread.isbackground = True listenthread.start() tester = False Public Sub cliproc() Dim clientno As Integer clientno = newcon Declare variables Dim i As Integer Dim j As Integer Dim data As String = Nothing Dim newdata As String = Nothing Dim bytesrec As Integer Dim destination As String Dim fromwho As String Dim towho As String Dim bytes = New Byte(1024) {} Dim lendata As Integer Dim curlen As Integer call to error handler

4 On Error GoTo clihandler Set up the from who header portion fromwho = namelist.items.item(clientno) + "@" wait for data arriving from this client recvnext: Do While ssock(clientno).available = 0 Loop read the data bytesrec = ssock(clientno).receive(bytes) convert to string data = Encoding.ASCII.GetString(bytes, 0, bytesrec) - 1)) pick out the length of data sent from client lendata = Val(Microsoft.VisualBasic.Left(data, InStr(data, "@") set byte counter curlen = bytesrec keep receiving the whole message Do While lendata > curlen bytesrec = ssock(clientno).receive(bytes) data = data + Encoding.ASCII.GetString(bytes, 0, bytesrec) curlen = curlen + bytesrec Loop convert message to string

5 data = Microsoft.VisualBasic.Right(data, Len(data) - InStr(data, find who the message is destined to If InStr(data, "@") > 0 Then towho = Microsoft.VisualBasic.Left (data, InStr(data, "@")) check if the message is to be sent If InStr(data, "@") > 0 And towho <> "bye@" Then destination = Microsoft.VisualBasic.Left(data, InStr(data, "@") - 1) newdata = Nothing assemble message with new header newdata = fromwho + Microsoft.VisualBasic.Right(data, Len (data) - Len(destination) - 1) convert to byte array bytes = Encoding.ASCII.GetBytes(newdata) find destination For i = 0 To 49 If (namelist.items.item(i) = destination) Then ssock(i).send(bytes) newdata = "" bytesrec = 0 Next i see if client is diconnecting ElseIf InStr(data, "@") > 0 And towho = "bye@" Then handle disconnection conlist.items.item(clientno) = "No Connection" namelist.items.item(clientno) = "" ssock(clientno).shutdown(socketshutdown.both) ssock(clientno).close() update connected client list

6 data = "names@" For j = 0 To 49 If namelist.items.item(j) <> "" Then data += namelist.items.item(j) + "@" Next j convert to byte array bytes = Encoding.ASCII.GetBytes(data) send to all connected clients For j = 0 To 49 If namelist.items.item(j) <> "" Then ssock(j).send(bytes) Next j kill that clients thread clithread(clientno).abort() GoTo recvnext clihandler: MessageBox.Show(Err.Description + " " + Str$(i)) Thread code for the synchronous listener Public Sub listenproc() Const portnumber As Integer = 13 Dim address As String Initialize listbox entries conlist.items.clear() namelist.items.clear() Dim x As Integer

7 For x = 0 To 49 conlist.items.add("no Connection") namelist.items.add("") Next x server name address = "newdig1" Create listener instance Dim tcplist As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Dim endpoint As New IPEndPoint(Dns.Resolve(address).AddressList (0), 13) keeplistening: This makes it syncronous tcplist.blocking = True tcplist.bind(endpoint) Waits for client to initiate connection tcplist.listen(10) Find free listbox entry newcon = 0 Do While (conlist.items.item(newcon) <> "No Connection") newcon = newcon + 1 Loop Accept client connection ssock(newcon) = tcplist.accept()

8 Dim bytes = New Byte(1024) {} Dim data As String = Nothing Dim bytesrec As Integer conlist.items.item(newcon) = ssock (newcon).remoteendpoint.serialize().item(4).tostring() + "." _ + ssock(newcon).remoteendpoint.serialize().item(5).tostring () + "." _ + ssock(newcon).remoteendpoint.serialize().item(6).tostring () + "." _ + ssock(newcon).remoteendpoint.serialize().item(7).tostring () bytesrec = ssock(newcon).receive(bytes) data = Encoding.ASCII.GetString(bytes, 0, bytesrec) namelist.items.item(newcon) = data Dim i As Integer data = "names@" Create up to date client list to be sent to all connected clients For i = 0 To 49 If namelist.items.item(i) <> "" Then data += namelist.items.item(i) + "@" Next i bytes = Encoding.ASCII.GetBytes(data) Send name list to all Clients For i = 0 To 49 If namelist.items.item(i) <> "" Then ssock(i).send(bytes) Next i

9 Create Thread for connecting client clithread(newcon) = New Thread(New ThreadStart(AddressOf Me.cliproc)) clithread(newcon).isbackground = True clithread(newcon).start() Pause for Thread to be Created listenthread.sleep(200) GoTo keeplistening Private Sub exitbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles exitbutton.click Closes all running threads and connected sockets by Brew-C listenthread.abort() Dim i As Integer For i = 0 To 49 If conlist.items.item(i) <> "No Connection" Then clithread (i).abort() If conlist.items.item(i) <> "No Connection" Then ssock(i).send(encoding.ascii.getbytes("bye@")) ssock(i).shutdown(socketshutdown.both) ssock(i).close() Next End the Program End

10 Private Sub namelist_doubleclick(byval sender As Object, ByVal e As System.EventArgs) Handles namelist.doubleclick This routine allows the server to forcefully disconnect any client currently logged in Dim i As Integer Dim bytes = New Byte(1024) {} Dim data As String = Nothing find which name was double clicked i = namelist.selectedindex conlist.items.item(i) = "No Connection" get rid of the client clithread(i).abort() namelist.items.item(i) = "" ssock(i).send(encoding.ascii.getbytes("bye@")) ssock(i).shutdown(socketshutdown.both) ssock(i).close() data = "names@" Create up to date client list to be sent to all connected clients For i = 0 To 49 If namelist.items.item(i) <> "" Then data += namelist.items.item(i) + "@" Next i bytes = Encoding.ASCII.GetBytes(data)

11 Send name list to all Clients For i = 0 To 49 If namelist.items.item(i) <> "" Then ssock(i).send(bytes) Next i Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing This routine covers other exits from the program besides a click of the exit button Abort all threads and close all sockets, sending bye first listenthread.abort() Dim i As Integer For i = 0 To 49 If conlist.items.item(i) <> "No Connection" Then clithread (i).abort() If conlist.items.item(i) <> "No Connection" Then ssock(i).send(encoding.ascii.getbytes("bye@")) ssock(i).shutdown(socketshutdown.both) ssock(i).close() Next i End Class Client Application The client application is your interface to chat. There are several things the client app. has to do. Firstly, the client has to connect to the server and establish a connection. It should also be able to disconnect from the server as well. The client must be able to list all connected clients on the server so you can select who you wish to send a message to. The client must have a place to type your message you wish to send and a way to invoke the message send off. The client must also have a place to display received messages. Form Layout The client form has more to display so is a little more complicated. From top down we start with the username textbox and the connect button. First when you start the client app. you must provide a username for yourself and click the connect button to "loggin" to the server. Once the

12 connection has been established the server returns a list of all other clients that are logged on. From the list of connected people you can select whom you wish to send a message to. You must also have a message to send to that user, hence, a textbox that is for the message you wish to send. Once the message is ready to send a click of the send button beneath the textbox with your message will send the message to the other user via the server. The other textbox is for received messages, as well as, a clear button. When the textbox is too full you can click the clear button and will start the textbox anew. The Code This is the Client Applilcation Imports System Imports System.Net Imports System.Net.Sockets Imports System.Text Imports System.Threading Imports System.Object Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " My Global Variables Dim csock As Socket Dim recthread As thread Dim endpoint As IPEndPoint Dim conthread As Thread #End Region Form Load Event Code Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

13 endpoint = New IPEndPoint(Dns.Resolve("newdig1").AddressList(0), 13) Receive thread code Public Sub recproc() declare local variables Dim bytes = New Byte(1024) {} Dim data As String Dim recbytes As Integer Dim cr As String Dim crbyte(2) As Byte crbyte(0) = 13 crbyte(1) = 10 error trap On Error GoTo handler carriage return linefeed define cr = Encoding.ASCII.GetString(crbyte) wait for data available recvnext: Do While csock.available = 0 Loop receive data and convert to string recbytes = csock.receive(bytes) data = Encoding.ASCII.GetString(bytes) are we receiving an updated namelist If Microsoft.VisualBasic.Left(data, InStr(data, "@")) = "names@" Then Dim tpoint As Integer tpoint = 7 theirnames.items.clear() Dim npoint As Integer

14 npoint = 1 pull out individual names and populate the listbox Do While tpoint < recbytes npoint = InStr(tpoint, data, "@") If npoint = 0 Then npoint = recbytes theirnames.items.add(mid$(data, tpoint, npoint - tpoint)) tpoint = npoint + 1 Loop bytes = New Byte(1024) {} GoTo recvnext is the server disconnecting ElseIf Microsoft.VisualBasic.Left(data, InStr(data, "@")) = "bye@" Then close socket and reset form to disconnected conditions csock.shutdown(socketshutdown.both) csock.close() theirnames.items.clear() cbut.text = "Connect" MessageBox.Show("Server has left") recthread.abort() receive message Else recbox.appendtext("received this from: " + Microsoft.VisualBasic.Left(data, InStr(data, "@") - 1) _ + cr) recbox.appendtext(microsoft.visualbasic.right(data, Len (data) - InStr(data, "@"))) recbox.appendtext(cr + cr) redeclare bytes to expunge old message bytes = New Byte(1024) {}

15 GoTo recvnext error handler handler: show what you got then terminate receiving thread MessageBox.Show(data) recthread.abort() Connect Button Click event Private Sub cbut_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles cbut.click Dim bytes = New Byte(1024) {} Dim data As String Dim recbytes As Integer check if you have entered a username If yourname.text = "" Then MessageBox.Show("You must specify your username") Exit Sub check if connected If (cbut.text = "Connect") And (yourname.text <> "") Then if not connected On Error GoTo handler create socket instance and connect csock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

16 csock.connect(endpoint) send your username to server bytes = Encoding.ASCII.GetBytes(yourname.Text) csock.send(bytes) bytes = Nothing cbut.text = "Disconnect" start receiving thread recthread = New Thread(New ThreadStart(AddressOf recproc)) recthread.isbackground = True recthread.start() ElseIf cbut.text = "Disconnect" Then if currently connected csock.send(encoding.ascii.getbytes("6@bye@")) csock.shutdown(socketshutdown.both) csock.close() theirnames.items.clear() recthread.abort() cbut.text = "Connect" handler: skiphandler: GoTo skiphandler MessageBox.Show("Can not connect") Run this code when the Send Button is Clicked Private Sub sendbut_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles sendbut.click declare local variables

17 Dim data As String Dim lendata As String Dim lendataint As Integer setup on error trap On Error GoTo sendhandler check to see if a destination user has been selected If theirnames.selectedindex = -1 Then if no selection MessageBox.Show("No destination user specified") Exit Sub define local variables Dim bytes = New Byte(1024) {} build string to send string starts with length of data then destination user then message text all signs in between data = theirnames.items.item(theirnames.selectedindex) + "@" + sendbox.text lendata = Str$(Len(data)) + "@" lendataint = Len(lendata) + Len(data) data = Str$(lendataint) + "@" + data convert to binary and send message bytes = Encoding.ASCII.GetBytes(data) csock.send(bytes) sendbox.text = "" sendhandler: GoTo skipsendhandler

18 If the client can not send message to server run this code MessageBox.Show("Server Problems. Your message was lost") csock.close() theirnames.items.clear() recthread.abort() cbut.text = "Connect" skipsendhandler: This code clears the received textbox Private Sub clearbut_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles clearbut.click End Class Summary recbox.text = "" I would like to clean up a few odds and ends. First when it comes to threads there is another document you should see. However, what is not mentioned there is the fact you can create a collection of threads by defining them as an array. You can run the same thread code multiple times at once and they will run independantly of each other. The Poll method is an unreliable means of checking for existing connections, too many other events satisfy conditions that signal a diconnect event. Despite the above mentioned problem with the Poll method this prgram is quite stable and seems to run well. More error trapping could be worked on to make it a more than useable chat program.

This is the start of the server code

This is the start of the server code This is the start of the server code using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.Net.Sockets;

More information

C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions

C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions Between the comments included with the code and the code itself, you shouldn t have any problems understanding what

More information

Learning VB.Net. Tutorial 19 Classes and Inheritance

Learning VB.Net. Tutorial 19 Classes and Inheritance Learning VB.Net Tutorial 19 Classes and Inheritance Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you

More information

Running the Altair SIMH from.net programs

Running the Altair SIMH from.net programs Running the Altair SIMH from.net programs The Altair SIMH simulator can emulate a wide range of computers and one of its very useful features is that it can emulate a machine running 50 to 100 times faster

More information

IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants

IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants These notes are available on the IMS1906 Web site http://www.sims.monash.edu.au Tutorial Sheet 4/Week 5 Please

More information

Chapter 2 Exploration of a Visual Basic.Net Application

Chapter 2 Exploration of a Visual Basic.Net Application Chapter 2 Exploration of a Visual Basic.Net Application We will discuss in this chapter the structure of a typical Visual Basic.Net application and provide you with a simple project that describes the

More information

VARIABLES. 1. STRINGS Data with letters and/or characters 2. INTEGERS Numbers without decimals 3. FLOATING POINT NUMBERS Numbers with decimals

VARIABLES. 1. STRINGS Data with letters and/or characters 2. INTEGERS Numbers without decimals 3. FLOATING POINT NUMBERS Numbers with decimals VARIABLES WHAT IS A VARIABLE? A variable is a storage location in the computer s memory, used for holding information while the program is running. The information that is stored in a variable may change,

More information

CS708 Lecture Notes. Visual Basic.NET Object-Oriented Programming. Implementing Client/Server Architectures. Part (I of?) (Lecture Notes 5A)

CS708 Lecture Notes. Visual Basic.NET Object-Oriented Programming. Implementing Client/Server Architectures. Part (I of?) (Lecture Notes 5A) CS708 Lecture Notes Visual Basic.NET Object-Oriented Programming Implementing Client/Server Architectures Part (I of?) (Lecture Notes 5A) Professor: A. Rodriguez CHAPTER 1 IMPLEMENTING CLIENT/SERVER APPLICATIONS...

More information

DEVELOPING OBJECT ORIENTED APPLICATIONS

DEVELOPING OBJECT ORIENTED APPLICATIONS DEVELOPING OBJECT ORIENTED APPLICATIONS By now, everybody should be comfortable using form controls, their properties, along with methods and events of the form class. In this unit, we discuss creating

More information

WAVV 2005 Colorado Springs, CO. VSE.NET Programming. Handouts. Agenda. Page 1. .NET Programming Example with VSE

WAVV 2005 Colorado Springs, CO. VSE.NET Programming. Handouts. Agenda. Page 1. .NET Programming Example with VSE .NET Programming Example with VSE Chuck Arney illustro Systems International LLC carney@illustro.com Handouts Download a copy of this presentation www.illustro.com/conferences WAVV2005-2 Agenda Introduction

More information

Revision for Final Examination (Second Semester) Grade 9

Revision for Final Examination (Second Semester) Grade 9 Revision for Final Examination (Second Semester) Grade 9 Name: Date: Part 1: Answer the questions given below based on your knowledge about Visual Basic 2008: Question 1 What is the benefit of using Visual

More information

Lab 6: Making a program persistent

Lab 6: Making a program persistent Lab 6: Making a program persistent In this lab, you will cover the following topics: Using the windows registry to make parts of the user interface sticky Using serialization to save application data in

More information

The Network. Multithreading. This tutorial can be found on -

The Network. Multithreading. This tutorial can be found on - This tutorial can be found on - http://www.informit.com/articles/article.aspx?p=25462&seqnum=5 Instant messaging is sweeping the world, and is rapidly replacing email as the preferred electronic communications

More information

Your Company Name. Tel: Fax: Microsoft Visual Studio C# Project Source Code Output

Your Company Name. Tel: Fax: Microsoft Visual Studio C# Project Source Code Output General Date Your Company Name Tel: +44 1234 567 9898 Fax: +44 1234 545 9999 email: info@@company.com Microsoft Visual Studio C# Project Source Code Output Created using VScodePrint Macro Variables Substitution

More information

1. Create your First VB.Net Program Hello World

1. Create your First VB.Net Program Hello World 1. Create your First VB.Net Program Hello World 1. Open Microsoft Visual Studio and start a new project by select File New Project. 2. Select Windows Forms Application and name it as HelloWorld. Copyright

More information

To enter the number in decimals Label 1 To show total. Text:...

To enter the number in decimals Label 1 To show total. Text:... Visual Basic tutorial - currency converter We will use visual studio to create a currency converter where we can convert a UK currency pound to other currencies. This is the interface for the application.

More information

Check out the demo video of this application so you know what you will be making in this tutorial.

Check out the demo video of this application so you know what you will be making in this tutorial. Visual Basic - System Information Viewer Welcome to our special tutorial of visual basic. In this tutorial we will use Microsoft visual studio 2010 version. You can download it for free from their website.

More information

Repetition Structures

Repetition Structures Repetition Structures There are three main structures used in programming: sequential, decision and repetition structures. Sequential structures follow one line of code after another. Decision structures

More information

Lab 3 The High-Low Game

Lab 3 The High-Low Game Lab 3 The High-Low Game LAB GOALS To develop a simple windows-based game named High-Low using VB.Net. You will use: Buttons, Textboxes, Labels, Dim, integer, arithmetic operations, conditionals [if-then-else],

More information

Tutorial 03 understanding controls : buttons, text boxes

Tutorial 03 understanding controls : buttons, text boxes Learning VB.Net Tutorial 03 understanding controls : buttons, text boxes Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple

More information

Objectives. After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism

Objectives. After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism Polymorphism Objectives After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism Definition Polymorphism provides the ability

More information

Chapter. Web Applications

Chapter. Web Applications Chapter Web Applications 144 Essential Visual Basic.NET fast Introduction Earlier versions of Visual Basic were excellent for creating applications which ran on a Windows PC, but increasingly there is

More information

Mr.Khaled Anwar ( )

Mr.Khaled Anwar ( ) The Rnd() function generates random numbers. Every time Rnd() is executed, it returns a different random fraction (greater than or equal to 0 and less than 1). If you end execution and run the program

More information

Konark - Writing a KONARK Sample Application

Konark - Writing a KONARK Sample Application icta.ufl.edu http://www.icta.ufl.edu/konarkapp.htm Konark - Writing a KONARK Sample Application We are now going to go through some steps to make a sample application. Hopefully I can shed some insight

More information

FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources

FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources This application demonstrates how a DataGridView control can be

More information

IOS Plus Trade - Web Services Version 4 Walkthrough

IOS Plus Trade - Web Services Version 4 Walkthrough IOS Plus Trade - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IOS Plus Trade information The purpose of this walkthrough is to build the following Windows Forms Application that

More information

IRESS Depth - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IRESS Depth information

IRESS Depth - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IRESS Depth information IRESS Depth - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IRESS Depth information The purpose of this walkthrough is to build the following Windows Forms Application that will

More information

Interprocess Communication

Interprocess Communication Interprocess Communication Reading: Silberschatz chapter 4 Additional Reading: Stallings chapter 6 EEL 358 1 Outline Introduction Shared memory systems POSIX shared memory Message passing systems Direct

More information

MapWindow Plug-in Development

MapWindow Plug-in Development MapWindow Plug-in Development Sample Project: Simple Path Analyzer Plug-in A step-by-step guide to creating a custom MapWindow Plug-in using the IPlugin interface by Allen Anselmo shade@turbonet.com Introduction

More information

Form Adapter Example. DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date :

Form Adapter Example. DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date : Form Adapter Example DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date : 2009-06-19 Form_Adapter.doc DRAFT page 1 Table of Contents Creating Form_Adapter.vb... 2 Adding the

More information

How to create a simple ASP.NET page to create/search data on baan using baan logic from the BOBS client sample.

How to create a simple ASP.NET page to create/search data on baan using baan logic from the BOBS client sample. How to create a simple ASP.NET page to create/search data on baan using baan logic from the BOBS client sample. Author: Carlos Kassab Date: July/24/2006 First install BOBS(BaaN Ole Broker Server), you

More information

SMTP Simple Mail Transfer Protocol

SMTP Simple Mail Transfer Protocol SMTP Simple Mail Transfer Protocol What is SMTP? SMTP stands for Simple Mail Transfer Protocol. This protocol allows transmitting electronic mail over the Internet or any other network. The protocol itself

More information

Instructor s Notes Programming Logic Printing Reports. Programming Logic. Printing Custom Reports

Instructor s Notes Programming Logic Printing Reports. Programming Logic. Printing Custom Reports Instructor s Programming Logic Printing Reports Programming Logic Quick Links & Text References Printing Custom Reports Printing Overview Page 575 Linking Printing Objects No book reference Creating a

More information

Design Of Human Computer Interfaces Assignment 1- Hello World. Compliance Report

Design Of Human Computer Interfaces Assignment 1- Hello World. Compliance Report Design Of Human Computer Interfaces Assignment 1- Hello World Compliance Report Prepared for: Skip Poehlman Prepared By: K C Course: SE 4D03 Date: September 30, 2008 Contents 1. Code Listing a. Module

More information

The following are required to duplicate the process outlined in this document.

The following are required to duplicate the process outlined in this document. Technical Note ClientAce WPF Project Example 1. Introduction Traditional Windows forms are being replaced by Windows Presentation Foundation 1 (WPF) forms. WPF forms are fundamentally different and designed

More information

PROGRAMMING ASSIGNMENT: MOVIE QUIZ

PROGRAMMING ASSIGNMENT: MOVIE QUIZ PROGRAMMING ASSIGNMENT: MOVIE QUIZ For this assignment you will be responsible for creating a Movie Quiz application that tests the user s of movies. Your program will require two arrays: one that stores

More information

Visual Basic 2008 Anne Boehm

Visual Basic 2008 Anne Boehm TRAINING & REFERENCE murach s Visual Basic 2008 Anne Boehm (Chapter 3) Thanks for downloading this chapter from Murach s Visual Basic 2008. We hope it will show you how easy it is to learn from any Murach

More information

In this tutorial we will create a simple calculator to Add/Subtract/Multiply and Divide two numbers and show a simple message box result.

In this tutorial we will create a simple calculator to Add/Subtract/Multiply and Divide two numbers and show a simple message box result. Simple Calculator In this tutorial we will create a simple calculator to Add/Subtract/Multiply and Divide two numbers and show a simple message box result. Let s get started First create a new Visual Basic

More information

Programming with Visual Studio Higher (v. 2013)

Programming with Visual Studio Higher (v. 2013) Programming with Visual Studio Higher (v. 2013) Contents/Requirements Checklist Multiple selection: using ifs & case While Loops Using arrays Filling arrays Displaying array contents Types of variables:

More information

GUI Design and Event- Driven Programming

GUI Design and Event- Driven Programming 4349Book.fm Page 1 Friday, December 16, 2005 1:33 AM Part 1 GUI Design and Event- Driven Programming This Section: Chapter 1: Getting Started with Visual Basic 2005 Chapter 2: Visual Basic: The Language

More information

DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6)

DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6) Technology & Information Management Instructor: Michael Kremer, Ph.D. Database Program: Microsoft Access Series DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6) AGENDA 3. Executing VBA

More information

MATFOR In Visual Basic

MATFOR In Visual Basic Quick Start t t MATFOR In Visual Basic ANCAD INCORPORATED TEL: +886(2) 8923-5411 FAX: +886(2) 2928-9364 support@ancad.com www.ancad.com 2 MATFOR QUICK START Information in this instruction manual is subject

More information

Learning VB.Net. Tutorial 17 Classes

Learning VB.Net. Tutorial 17 Classes Learning VB.Net Tutorial 17 Classes Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you enjoy it. If

More information

Santiago Canyon College Computer Science

Santiago Canyon College Computer Science P a g e 1 Santiago Canyon College Computer Science The.Net Threading Model Introduction The purpose of this paper is to introduce you to multi-threading in Visual Studio. Learning how to take advantage

More information

3.1 Introduction. Computers perform operations concurrently

3.1 Introduction. Computers perform operations concurrently PROCESS CONCEPTS 1 3.1 Introduction Computers perform operations concurrently For example, compiling a program, sending a file to a printer, rendering a Web page, playing music and receiving e-mail Processes

More information

Simple Factory Pattern

Simple Factory Pattern Simple Factory Pattern Graeme Geldenhuys 2008-08-02 In this article I am going to discuss one of three Factory design patterns. The Factory patterns are actually subtle variations of each other and all

More information

Hands-On Lab. Lab: Client Object Model. Lab version: Last updated: 2/23/2011

Hands-On Lab. Lab: Client Object Model. Lab version: Last updated: 2/23/2011 Hands-On Lab Lab: Client Object Model Lab version: 1.0.0 Last updated: 2/23/2011 CONTENTS OVERVIEW... 3 EXERCISE 1: RETRIEVING LISTS... 4 EXERCISE 2: PRINTING A LIST... 8 EXERCISE 3: USING ADO.NET DATA

More information

Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM

Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM In this homework you will add code to permit a calendar to be served to clients, and to open a calendar on a remote server. You will

More information

To get started with Visual Basic 2005, I recommend that you jump right in

To get started with Visual Basic 2005, I recommend that you jump right in In This Chapter Chapter 1 Wading into Visual Basic Seeing where VB fits in with.net Writing your first Visual Basic 2005 program Exploiting the newfound power of VB To get started with Visual Basic 2005,

More information

GET TO KNOW YOUR HOME PHONE

GET TO KNOW YOUR HOME PHONE telstra.com/homephone visit a telstra store 13 2200 HOME FEATURES USER GUIDE GET TO KNOW YOUR HOME PHONE C020 OCT13 ENJOY FEATURES THAT MAKE LIFE EASIER Home features make it easy for you to do more with

More information

Interacting with External Applications

Interacting with External Applications Interacting with External Applications DLLs - dynamic linked libraries: Libraries of compiled procedures/functions that applications link to at run time DLL can be updated independently of apps using them

More information

Visual Studio.NET for AutoCAD Programmers

Visual Studio.NET for AutoCAD Programmers December 2-5, 2003 MGM Grand Hotel Las Vegas Visual Studio.NET for AutoCAD Programmers Speaker Name: Andrew G. Roe, P.E. Class Code: CP32-3 Class Description: In this class, we'll introduce the Visual

More information

Classes in C# namespace classtest { public class myclass { public myclass() { } } }

Classes in C# namespace classtest { public class myclass { public myclass() { } } } Classes in C# A class is of similar function to our previously used Active X components. The difference between the two is the components are registered with windows and can be shared by different applications,

More information

UNIT 2 USING VB TO EXPAND OUR KNOWLEDGE OF PROGRAMMING

UNIT 2 USING VB TO EXPAND OUR KNOWLEDGE OF PROGRAMMING UNIT 2 USING VB TO EXPAND OUR KNOWLEDGE OF PROGRAMMING UNIT 2 USING VB TO EXPAND OUR KNOWLEDGE OF PROGRAMMING... 1 IMPORTANT PROGRAMMING TERMINOLOGY AND CONCEPTS... 2 Program... 2 Programming Language...

More information

class Class1 { /// <summary> /// The main entry point for the application. /// </summary>

class Class1 { /// <summary> /// The main entry point for the application. /// </summary> Project 06 - UDP Client/Server Applications In this laboratory project you will build a number of Client/Server applications using C# and the.net framework. The first will be a simple console application

More information

CS 455/655 Computer Networks Fall Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm)

CS 455/655 Computer Networks Fall Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm) CS 455/655 Computer Networks Fall 2017 Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm) To be completed individually. Please review Academic Honesty noted

More information

Developing Desktop Apps for Ultrabook Devices in Windows 8*: Getting Started

Developing Desktop Apps for Ultrabook Devices in Windows 8*: Getting Started Developing Desktop Apps for Ultrabook Devices in Windows 8*: Getting Started By Paul Ferrill The Ultrabook provides a rich set of sensor capabilities to enhance a wide range of applications. It also includes

More information

'... '... '... Developer: William H. White (consultant) '... With: TEKsystems Inc. '... For: AIG. Financial Information Systems

'... '... '... Developer: William H. White (consultant) '... With: TEKsystems Inc.   '... For: AIG. Financial Information Systems ThisWorkbook - 1 Developer: William H. White (consultant) With: TEKsystems Inc. www.teksystems.com For: AIG Financial Information Systems 1 NY Plaza, 15th floor Current contact: william.white@aig.com (212)

More information

CIS 505: Software Systems

CIS 505: Software Systems CIS 505: Software Systems Spring 2018 Assignment 2: Email servers MS1 due February 16, 2018, at 10:00pm EST MS2+3 due March 1, 2018, at 10:00pm EST 1 Overview For this assignment, you will build two simple

More information

Computing Science Unit 1

Computing Science Unit 1 Computing Science Unit 1 Software Design and Development Programming Practical Tasks Business Information Technology and Enterprise Contents Input Validation Find Min Find Max Linear Search Count Occurrences

More information

Unit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types

Unit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types Managing Data Unit 4 Managing Data Introduction Lesson 4.1 Data types We come across many types of information and data in our daily life. For example, we need to handle data such as name, address, money,

More information

Visual Basic 2008 The programming part

Visual Basic 2008 The programming part Visual Basic 2008 The programming part Code Computer applications are built by giving instructions to the computer. In programming, the instructions are called statements, and all of the statements that

More information

I101/B100 Problem Solving with Computers

I101/B100 Problem Solving with Computers I101/B100 Problem Solving with Computers By: Dr. Hossein Hakimzadeh Computer Science and Informatics IU South Bend 1 What is Visual Basic.Net Visual Basic.Net is the latest reincarnation of Basic language.

More information

Elements of Transport Protocols

Elements of Transport Protocols CEN445 Network Protocols and Algorithms Chapter 6 Transport Layer 6.2 Elements of Transport Protocols Dr. Mostafa Hassan Dahshan Department of Computer Engineering College of Computer and Information Sciences

More information

Function: function procedures and sub procedures share the same characteristics, with

Function: function procedures and sub procedures share the same characteristics, with Function: function procedures and sub procedures share the same characteristics, with one important difference- function procedures return a value (e.g., give a value back) to the caller, whereas sub procedures

More information

UNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net

UNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net UNIT 1 Introduction to Microsoft.NET framework and Basics of VB.Net 1 SYLLABUS 1.1 Overview of Microsoft.NET Framework 1.2 The.NET Framework components 1.3 The Common Language Runtime (CLR) Environment

More information

You can call the project anything you like I will be calling this one project slide show.

You can call the project anything you like I will be calling this one project slide show. C# Tutorial Load all images from a folder Slide Show In this tutorial we will see how to create a C# slide show where you load everything from a single folder and view them through a timer. This exercise

More information

Learning VB.Net. Tutorial 10 Collections

Learning VB.Net. Tutorial 10 Collections Learning VB.Net Tutorial 10 Collections Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you enjoy it.

More information

TDT 1.2 Release Notes and FAQ March 2002

TDT 1.2 Release Notes and FAQ March 2002 TDT 1.2 Release Notes and FAQ March 2002 This document gives additional information about the use of the ARM Trace Debug Tools TDT 1.2 (build 1031) For more information, please see the Trace Debug Tools

More information

Variable A variable is a value that can change during the execution of a program.

Variable A variable is a value that can change during the execution of a program. Declare and use variables and constants Variable A variable is a value that can change during the execution of a program. Constant A constant is a value that is set when the program initializes and does

More information

Upgrading Applications

Upgrading Applications C0561587x.fm Page 77 Thursday, November 15, 2001 2:37 PM Part II Upgrading Applications 5 Your First Upgrade 79 6 Common Tasks in Visual Basic.NET 101 7 Upgrading Wizard Ins and Outs 117 8 Errors, Warnings,

More information

Year 12 : Visual Basic Tutorial.

Year 12 : Visual Basic Tutorial. Year 12 : Visual Basic Tutorial. STUDY THIS Input and Output (Text Boxes) The three stages of a computer process Input Processing Output Data is usually input using TextBoxes. [1] Create a new Windows

More information

Network Programming. ò Network Protocols ò Communication Connection ò Naming

Network Programming. ò Network Protocols ò Communication Connection ò Naming Network Programming Network Programming ò Network Protocols ò Communication Connection ò Naming Why are these important? You are developing a multi-player game, you will need to know how to: ò Establish

More information

Connection Example. Document ID : Connection_Example.PDF Author : Michele Harris Version : 1.1 Date :

Connection Example. Document ID : Connection_Example.PDF Author : Michele Harris Version : 1.1 Date : Connection Example Document ID : Connection_Example.PDF Author : Michele Harris Version : 1.1 Date : 2009-06-19 page 1 Table of Contents Connection Example... 2 Adding the Code... 2 Quick Watch myconnection...

More information

DRAWING AND MOVING IMAGES

DRAWING AND MOVING IMAGES DRAWING AND MOVING IMAGES Moving images and shapes in a Visual Basic application simply requires the user of a Timer that changes the x- and y-positions every time the Timer ticks. In our first example,

More information

XP: Backup Your Important Files for Safety

XP: Backup Your Important Files for Safety XP: Backup Your Important Files for Safety X 380 / 1 Protect Your Personal Files Against Accidental Loss with XP s Backup Wizard Your computer contains a great many important files, but when it comes to

More information

'... '... '... Module created: unknown '... Proj finished: March 21, 2012 '... '...

'... '... '... Module created: unknown '... Proj finished: March 21, 2012 '... '... ThisWorkbook - 1 If g_bdebugmode Then '... Module created: unknown '... Proj finished: March 21, 2012 '************************* CLASS-LEVEL DECLARATIONS ************************** Option Explicit Option

More information

HOUR 4 Understanding Events

HOUR 4 Understanding Events HOUR 4 Understanding Events It s fairly easy to produce an attractive interface for an application using Visual Basic.NET s integrated design tools. You can create beautiful forms that have buttons to

More information

Server Component of the Chat Room Lab

Server Component of the Chat Room Lab Chat Room Server Dr. Tom Hicks - Trinity University Page 1 of 41 Server Component of the Chat Room Lab This lab is designed to show students how they may can do socket programming in a step by step process

More information

VISUAL BASIC PROGRAMMING (44) Technical Task KEY. Regional 2013 TOTAL POINTS (485)

VISUAL BASIC PROGRAMMING (44) Technical Task KEY. Regional 2013 TOTAL POINTS (485) 5 Pages VISUAL BASIC PROGRAMMING (44) Technical Task KEY Regional 2013 TOTAL POINTS (485) Graders: Please double-check and verify all scores! Property of Business Professionals of America. May be reproduced

More information

IPGpulser. IPGpulser Overview

IPGpulser. IPGpulser Overview Overview The package consists of both a hardware interface box and software to provide a number of control features for the IPG laser. The, as its name implies, provides a pulse generator coupled to the

More information

Tutorial - Hello World

Tutorial - Hello World Tutorial - Hello World Spirit Du Ver. 1.1, 25 th September, 2007 Ver. 2.0, 7 th September, 2008 Ver. 2.1, 15 th September, 2014 Contents About This Document... 1 A Hello Message Box... 2 A Hello World

More information

VISUAL BASIC 2005 EXPRESS: NOW PLAYING

VISUAL BASIC 2005 EXPRESS: NOW PLAYING VISUAL BASIC 2005 EXPRESS: NOW PLAYING by Wallace Wang San Francisco ADVANCED DATA STRUCTURES: QUEUES, STACKS, AND HASH TABLES Using a Queue To provide greater flexibility in storing information, Visual

More information

Herefordshire College of Technology Centre Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3)

Herefordshire College of Technology Centre Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3) Student: Candidate Number: Assessor: Len Shand Herefordshire College of Technology Centre 24150 Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3) Course: Unit: Title:

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

More information

Building Applications

Building Applications V B. N E T P r o g r a m m i n g, T h e B a s i c C o n c e p t s a n d To o l s E n g. H a s a n A l h o u r i Building Applications analyzing designing coding testing deploying Eng. Hasan Alhouri 1 Programming

More information

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications concurrently on all computers in the cluster. Disadvantages:

More information

The Paperless Classroom with Google Docs by - Eric Curts

The Paperless Classroom with Google Docs by - Eric Curts The Paperless Classroom with Google Docs by - Eric Curts Table of Contents Overview How to name documents and folders How to choose sharing options: Edit, Comment, and View How to share a document with

More information

11. Persistence. The use of files, streams and serialization for storing object model data

11. Persistence. The use of files, streams and serialization for storing object model data 11. Persistence The use of files, streams and serialization for storing object model data Storing Application Data Without some way of storing data off-line computers would be virtually unusable imagine

More information

Protocol Specification Version 1.0 Shreyas Dube Smita Singhaniya Piyush Goswami Sowmya MD. Protocol Specification

Protocol Specification Version 1.0 Shreyas Dube Smita Singhaniya Piyush Goswami Sowmya MD. Protocol Specification Protocol Specification 1 Table of Contents 1. About this Guide... 3 2. Scope of this document... 4 3. System Overview... 5 4. System Components... 6 5. The Chat Server... 7 6. The User Agent... 14 7. The

More information

Microsoft Visual Basic 2015: Reloaded

Microsoft Visual Basic 2015: Reloaded Microsoft Visual Basic 2015: Reloaded Sixth Edition Chapter Three Memory Locations and Calculations Objectives After studying this chapter, you should be able to: Declare variables and named constants

More information

COMP 202 Java in one week

COMP 202 Java in one week COMP 202 Java in one week... Continued CONTENTS: Return to material from previous lecture At-home programming exercises Please Do Ask Questions It's perfectly normal not to understand everything Most of

More information

COOKBOOK Sending an in Response to Actions

COOKBOOK Sending an  in Response to Actions 2011 COOKBOOK Sending an Email in Response to Actions Send an Email Let s expand the capabilities of the context menu in Customers grid view. We will add a new option, seen below, which will execute a

More information

Lecture 10 OOP and VB.Net

Lecture 10 OOP and VB.Net Lecture 10 OOP and VB.Net Pillars of OOP Objects and Classes Encapsulation Inheritance Polymorphism Abstraction Classes A class is a template for an object. An object will have attributes and properties.

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

Get JAVA. I will just tell you what I did (on January 10, 2017). I went to:

Get JAVA. I will just tell you what I did (on January 10, 2017). I went to: Get JAVA To compile programs you need the JDK (Java Development Kit). To RUN programs you need the JRE (Java Runtime Environment). This download will get BOTH of them, so that you will be able to both

More information

Frequently Asked Questions

Frequently Asked Questions Frequently Asked Questions Frequently Asked Questions for Cisco Unified Personal Communicator 8.6 and Voice and Video Firmware 8.6 for Cisco Virtualization Experience Client 6215 FAQs 2 Basics 3 Setup

More information

Operating Systems (CS1022) Input/Output. Yagiz Özbek Evren

Operating Systems (CS1022) Input/Output. Yagiz Özbek Evren Operating Systems (CS1022) Input/Output Yagiz Özbek Evren 1 Content Principles of IO Hardware...3 IO Devices.. Device Controllers.. Memory-Mapped IO... Direct Memory Access... Interrupts. Principles of

More information

6.2 Elements of Transport Protocols

6.2 Elements of Transport Protocols CEN445 Network Protocols and Algorithms Chapter 6 Transport Layer 6.2 Elements of Transport Protocols Dr. Mostafa Hassan Dahshan Department of Computer Engineering College of Computer and Information Sciences

More information

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING

2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS Collision Free Protocols 2.3 FDDI 2.4 DATA LINK LAYER DESIGN ISSUES 2.5 FRAMING & STUFFING UNIT-2 2.1 CHANNEL ALLOCATION 2.2 MULTIPLE ACCESS PROTOCOLS 2.2.1 Pure ALOHA 2.2.2 Slotted ALOHA 2.2.3 Carrier Sense Multiple Access 2.2.4 CSMA with Collision Detection 2.2.5 Collision Free Protocols 2.2.5.1

More information