× ABOUT DOWNLOADS PROJECTS WORK
    cyberpunk.sh
Profile photo

PREMCHAND CHAKKUNGAL

SENIOR SOFTWARE ENGINEER

Are you looking for a way to submit data from user login or registration page from your app to a server. The following code will help you to implement the same in your project.

“SomeClass newinstance” is the object which will collect the login credentials or registration values. This object will be later passed to the server.


public async Task SomeFunction(SomeClass newinstance)
{
try
{
RestClient client = new RestClient(“http://baseurl.com/);
RestSharpExtension newextension = new RestSharpEextension();
client.Authenticator = new HttpBasicAuthenticator(“admin”, “password”);
var request = new RestRequest(“api-service/subcall/, Method.POST);
request.AddHeader(“Content-Type”, “application/json”);
request.RequestFormat = DataFormat.Json;
request.AddBody(newinstance);
var response = await newextension.ExecuteAwait(client, request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
String JsonData=response.Content.ToString();
return true;
}
else
{
return false;
}
}
catch (Exception)
{
MessageBox.Show(“You have some problem with your internet connectivity.);
return false;
}
}

The below code snippet implements the ReshSharpExtension


public class RestSharpExtension
    {
        public Task ExecuteAwait(RestClient client, RestRequest request)
        {
            TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
            client.ExecuteAsync(request, (response, asyncHandle) =>
            {
                if (response.ResponseStatus == ResponseStatus.Error)
                {
                    taskCompletionSource.SetException(response.ErrorException);
                }
                else
                {
                    taskCompletionSource.SetResult(response);
                }
            });
            return taskCompletionSource.Task;
        }
    }

RestSharp is a powerful tool for communicating with server for POST operations. But it lacks an awaitable process. The following function will help you to execute the request as awaitable.


public class RestSharpExtensions
{
public Task ExecuteAwait(RestClient client, RestRequest request)
{
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
client.ExecuteAsync(request, (response, asyncHandle) =>
{
if (response.ResponseStatus == ResponseStatus.Error)
{
taskCompletionSource.SetException(response.ErrorException);
}
else
{
taskCompletionSource.SetResult(response);
}
});
return taskCompletionSource.Task;
}
}

Often we might need to display placeholder or watermark for the text boxes in our mobile apps. Here is an easy way for you to include it as well!!

Install a Nuget Package:

PM> Install-Package WindowsPhoneControls

Usage:

In declaration part, define namespace


<xmlns:CSControls=”clr-namespace:CS.Windows.Controls;assembly=CS.Windows.Controls”>

Now when ever you want a watermark text or password, write


<CSControls:WatermarkTextBox x:Name=”textbox1″ WatermarkText=” Enter your name”/>

There can be many variations in the TCP program to make it “Application Specific”. One such application specific program is Reverse of a String. For each client input, the server will return the reversed string.

tcpserver.java


import java.io.*;
import java.net.*;
class tcpserver
{
    public static void main(String args[])throws Exception
    {
        System.out.println("Server started....n");
        try
        {
            ServerSocket welcome_socket=new ServerSocket(1234);
            while(true)
            {
                Socket listen_socket=welcome_socket.accept();
                BufferedReader server_input=new BufferedReader(new InputStreamReader(System.in));
                BufferedReader client_out=new BufferedReader(new InputStreamReader(listen_socket.getInputStream()));
                DataOutputStream server_out=new DataOutputStream(listen_socket.getOutputStream());
                String client_str,server_str;
                client_str=client_out.readLine();
                System.out.println("Client:"+client_str+'n');
                int strln=client_str.length();
                for(int i=strln-1;i>=0;i--)
                    server_str=server_input.readLine();
                server_out.writeBytes(server_str+'n');
            }
        }
        catch (Exception e)
        {
            System.out.println("Error:"+e.getMessage());
        }
    }
}

tcpclient.java


import java.io.*;
import java.net.*;
class tcpclient
{
    public static void main(String args[])throws Exception
    {
        System.out.println("Client started...");
        try
        {
            Socket client_socket=new Socket("localhost",1234);
            while(true)
            {
                BufferedReader client_input=new BufferedReader(new InputStreamReader(System.in));
                BufferedReader server_out=new BufferedReader(new InputStreamReader(client_socket.getInputStream()));
                DataOutputStream client_out=new DataOutputStream(client_socket.getOutputStream());
                String client_str,server_str;
                System.out.println("Enter string:");
                client_str=client_input.readLine();
                client_out.writeBytes(client_str+'n');
                server_str=server_out.readLine();
                System.out.println("Reversed String:"+server_str+'\n');
            }
        }
        catch(Exception e)
        {
            System.out.println("Error:"+e.getMessage());
        }
    }
}

Unlike my prevoius post, this is an implementation of Client-Server chat in UDP. UDP is another Transport Layer Protocol. Similar to TCP program , this program also requires it’s server program to be executed first followed by the client program.

udpserver.java

  
import java.io.*;  
import java.net.*;  
class udpserver  
{
    public static void main(String args[])throws Exception
    {
        System.out.println("Server started....n");
        try
        {
            DatagramSocket server_socket=new DatagramSocket(1234);
            BufferedReader server_input=new BufferedReader(new InputStreamReader(System.in));
            byte in_data[]=new byte[1024];
            byte out_data[]=new byte[1024];
            while(true)
            {
                DatagramPacket Packet2=new DatagramPacket(in_data,in_data.length);
                server_socket.receive(Packet2);
                String client_str=new String(Packet2.getData());
                System.out.println("Client:"+client_str+'n');
                InetAddress IP_Add=Packet2.getAddress();
                int port=Packet2.getPort();
                String server_str;
                System.out.println("Enter message:");
                server_str=server_input.readLine();
                out_data=server_str.getBytes();
                DatagramPacket Packet3=new DatagramPacket(out_data,out_data.length,IP_Add,port);
                server_socket.send(Packet3);
            }
        }
        catch (Exception e)
        {
            System.out.println("Error:"+e.getMessage());
        }
    }
}

udpclient.java


import java.io.*;
import java.net.*;
class udpclient
{
    public static void main(String args[])throws Exception
    {
        System.out.println("Client started....n");
        try
        {
            DatagramSocket client_socket=new DatagramSocket(12345);
            BufferedReader client_input=new BufferedReader(new InputStreamReader(System.in));
            InetAddress IP_Add=InetAddress.getByName("localhost");
            int port=1234;
            byte in_data[]=new byte[1024];
            byte out_data[]=new byte[1024];
            while(true)
            {
                String client_str;
                System.out.println("Enter message:");
                client_str=client_input.readLine();
                out_data=client_str.getBytes();
                DatagramPacket Packet1=new DatagramPacket(out_data,out_data.length,IP_Add,port);
                client_socket.send(Packet1);
                DatagramPacket Packet4=new DatagramPacket(in_data,in_data.length);
                client_socket.receive(Packet4);
                String server_str=new String(Packet4.getData());
                System.out.println("Client:"+server_str+'n');

            }
        }
        catch (Exception e)
        {
            System.out.println("Error:"+e.getMessage());
        }
    }
}