Project: Create test bed for client-server database program.
Server: Windows using C#
Clients: iPad using Swift (can test on simulator, and can bridge to Objective C)
Clients and server will be on a Wireless LAN, and will use
Sockets to communicate.
Purpose: to make sure objects can be passed back and forth between clients and server.
The project will basically work like a chat program.
The multithreaded server will wait for clients to make a connection
The client will press the connect button, and a connection will be made. The server will keep track of each connection.
The client will input information on the screen, and then press send.
In the sendButton event handler, the data will be taken from the form on the screen, and then placed in an object (see class description below). Then, the following method will be called (C# version) : public void sendTestClassToServer(TestClass tempTestClass)
On the server, the data from the sent object will be shown on the server’s screen.
The server will take the object, change the data, and send it back to the client.
The client will display the new data on the screen.
I will be responsible for providing the basic program — that includes the front ends for the clients and server, basically everything but the socket communications.
The programmer will be responsible for the socket communications. That means:
Server side: Press initializeConnectionButton — the server side sockets will be set up. It will be multithreaded, so multiple clients can be handled simultaneously.
Client side: Press makeConnectionButton — connection is established between client and server. The server tracks the connection, and puts it into a SortedList which is indexed on the user’s name.
Client side: Press the sendButton — the programmer will be responsible for the logic of the sendTestClassToServer method mentioned above. The object must be sent to the server, the server will unwrap the data and show it on the server screen (I will write the display logic, but the programmer must supply data in a TestClass object). The data in the TestClass object will be changed randomly (say a “1” added to each number, a “1” added to the end of the String, etc.), and then sent back to the client, which then displays it on the screen.
Client side: Press closeConnectionButton — the programmer will be responsible for closing out connection and doing housekeeping on server side.
The TestClass will look like this (C#)
I will provide the Swift and C# projects, and you merely need to fill in the blanks. I believe this is an easy project for somebody who already knows how to use sockets, etc.
I suggest we get the C# server and client working together, and then add the Swift client afterward.
Important: I will accept bids just the C# client and server, but would prefer somebody who could do the iPad part as well.
I look forward to working with you!