0% found this document useful (0 votes)
179 views9 pages

Network Programming with Sockets

The document describes how to implement client-server communication in different programming languages using sockets. It provides code examples in Java, C#, and Visual Basic to demonstrate how to create a TCP server and client that can exchange messages. The server code shows how to accept incoming connections and receive/send data, while the client code shows how to connect to the server and send/receive data.

Uploaded by

dox811
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
179 views9 pages

Network Programming with Sockets

The document describes how to implement client-server communication in different programming languages using sockets. It provides code examples in Java, C#, and Visual Basic to demonstrate how to create a TCP server and client that can exchange messages. The server code shows how to accept incoming connections and receive/send data, while the client code shows how to connect to the server and send/receive data.

Uploaded by

dox811
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

UNIVERSITATEA ROMNO-AMERICAN

FACULTATEA DE INFORMATIC MANAGERIAL


PROGRAMUL DE STUDII UNIVERSITARE DE MASTERAT INFORMATIC
ECONOMIC














Aplicatii Client Server
Implementarea comunicatiei in retea in diferite limbaje de
programare cu ajutorul socket-urilor

Profesor Coordonator: Botezatu Cornelia
Student:
Bucureti,
2014


2
Contents
Java ...................................................................................................................................................... 3
C# ......................................................................................................................................................... 4
Visual Basic .......................................................................................................................................... 6
Bibliografie .......................................................................................................................................... 9

























3
Java

Server:
import java.io.*;
import java.net.*;

class TCPServer
{
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);

while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new
InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new
DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
Client:
import java.io.*;
import java.net.*;

class TCPClient
{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader( new
InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new
DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
}
}


4
C#

Server:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class SynchronousSocketListener {

// Incoming data from the client.
public static string data = null;

public static void StartListening() {
// Data buffer for incoming data.
byte[] bytes = new Byte[1024];

// Establish the local endpoint for the socket.
// Dns.GetHostName returns the name of the
// host running the application.
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);

// Create a TCP/IP socket.
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );

// Bind the socket to the local endpoint and
// listen for incoming connections.
try {
listener.Bind(localEndPoint);
listener.Listen(10);

// Start listening for connections.
while (true) {
Console.WriteLine("Waiting for a connection...");
// Program is suspended while waiting for an incoming
connection.
Socket handler = listener.Accept();
data = null;

// An incoming connection needs to be processed.
while (true) {
bytes = new byte[1024];
int bytesRec = handler.Receive(bytes);
data += Encoding.ASCII.GetString(bytes,0,bytesRec);
if (data.IndexOf("<EOF>") > -1) {
break;
}
}

// Show the data on the console.
Console.WriteLine( "Text received : {0}", data);

// Echo the data back to the client.
byte[] msg = Encoding.ASCII.GetBytes(data);



5
handler.Send(msg);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}

} catch (Exception e) {
Console.WriteLine(e.ToString());
}

Console.WriteLine("\nPress ENTER to continue...");
Console.Read();

}

public static int Main(String[] args) {
StartListening();
return 0;
}
}

Client:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class SynchronousSocketClient {

public static void StartClient() {
// Data buffer for incoming data.
byte[] bytes = new byte[1024];

// Connect to a remote device.
try {
// Establish the remote endpoint for the socket.
// This example uses port 11000 on the local computer.
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName())
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);

// Create a TCP/IP socket.
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );

// Connect the socket to the remote endpoint. Catch any errors.
try {
sender.Connect(remoteEP);

Console.WriteLine("Socket connected to {0}",
sender.RemoteEndPoint.ToString());

// Encode the data string into a byte array.
byte[] msg = Encoding.ASCII.GetBytes("This is a
test<EOF>");

// Send the data through the socket.
int bytesSent = sender.Send(msg);

// Receive the response from the remote device.


6
int bytesRec = sender.Receive(bytes);
Console.WriteLine("Echoed test = {0}",
Encoding.ASCII.GetString(bytes,0,bytesRec));

// Release the socket.
sender.Shutdown(SocketShutdown.Both);
sender.Close();

} catch (ArgumentNullException ane) {
Console.WriteLine("ArgumentNullException :
{0}",ane.ToString());
} catch (SocketException se) {
Console.WriteLine("SocketException : {0}",se.ToString());
} catch (Exception e) {
Console.WriteLine("Unexpected exception : {0}",
e.ToString());
}

} catch (Exception e) {
Console.WriteLine( e.ToString());
}
}

public static int Main(String[] args) {
StartClient();
return 0;
}
}


Visual Basic

Server:
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic

Public Class SynchronousSocketListener

' Incoming data from the client.
Public Shared data As String = Nothing

Public Shared Sub Main()
' Data buffer for incoming data.
Dim bytes() As Byte = New [Byte](1024) {}

' Establish the local endpoint for the socket.
' Dns.GetHostName returns the name of the
' host running the application.
Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())
Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)
Dim localEndPoint As New IPEndPoint(ipAddress, 11000)



7
' Create a TCP/IP socket.
Dim listener As New Socket(AddressFamily.InterNetwork, _
SocketType.Stream, ProtocolType.Tcp)

' Bind the socket to the local endpoint and
' listen for incoming connections.

listener.Bind(localEndPoint)
listener.Listen(10)

' Start listening for connections.
While True
Console.WriteLine("Waiting for a connection...")
' Program is suspended while waiting for an incoming
connection.
Dim handler As Socket = listener.Accept()
data = Nothing

' An incoming connection needs to be processed.
While True
bytes = New Byte(1024) {}
Dim bytesRec As Integer = handler.Receive(bytes)
data += Encoding.ASCII.GetString(bytes, 0, bytesRec)
If data.IndexOf("<EOF>") > -1 Then
Exit While
End If
End While
' Show the data on the console.
Console.WriteLine("Text received : {0}", data)
' Echo the data back to the client.
Dim msg As Byte() = Encoding.ASCII.GetBytes(data)
handler.Send(msg)
handler.Shutdown(SocketShutdown.Both)
handler.Close()
End While
End Sub

End Class 'SynchronousSocketListener

Client:
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text

Public Class SynchronousSocketClient

Public Shared Sub Main()
' Data buffer for incoming data.
Dim bytes(1024) As Byte

' Connect to a remote device.

' Establish the remote endpoint for the socket.
' This example uses port 11000 on the local computer.
Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())
Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)
Dim remoteEP As New IPEndPoint(ipAddress, 11000)



8
' Create a TCP/IP socket.
Dim sender As New Socket(AddressFamily.InterNetwork, _
SocketType.Stream, ProtocolType.Tcp)

' Connect the socket to the remote endpoint.
sender.Connect(remoteEP)

Console.WriteLine("Socket connected to {0}", _
sender.RemoteEndPoint.ToString())

' Encode the data string into a byte array.
Dim msg As Byte() = _
Encoding.ASCII.GetBytes("This is a test<EOF>")

' Send the data through the socket.
Dim bytesSent As Integer = sender.Send(msg)

' Receive the response from the remote device.
Dim bytesRec As Integer = sender.Receive(bytes)
Console.WriteLine("Echoed test = {0}", _
Encoding.ASCII.GetString(bytes, 0, bytesRec))

' Release the socket.
sender.Shutdown(SocketShutdown.Both)
sender.Close()
End Sub

End Class 'SynchronousSocketClient
















9


Bibliografie

The Java secure socket extensions: Authenticating and
encrypting connections - Angell, Kirby W. Dr. Dobb's
Journal26.2 (Feb 2001): 21-28.
Informatica, Tibco Say WebSockets A Winner Richer Web Products
Among the early leaders in utilizing new, faster HTML5 tech
standard - Ma, Jason. Investor's Business Daily [Los Angeles]
01 July 2011: A04.
TCP/IP Sockets in C (Second Edition) Practical Guide for
Programmers - Donahoo Michael J., Calvert Kenneth L. 2009

You might also like