Click here to Skip to main content
15,887,326 members
Home / Discussions / C#
   

C#

 
GeneralRe: Searching files Pin
Eddy Vluggen10-May-09 22:52
professionalEddy Vluggen10-May-09 22:52 
GeneralRe: Searching files Pin
Rajdeep.NET is BACK10-May-09 23:17
Rajdeep.NET is BACK10-May-09 23:17 
AnswerRe: Searching files Pin
Vikram A Punathambekar10-May-09 22:26
Vikram A Punathambekar10-May-09 22:26 
GeneralRe: Searching files Pin
Rajdeep.NET is BACK10-May-09 22:41
Rajdeep.NET is BACK10-May-09 22:41 
GeneralRe: Searching files Pin
Vikram A Punathambekar11-May-09 2:19
Vikram A Punathambekar11-May-09 2:19 
GeneralRe: Searching files Pin
Rama Krishna Vavilala29-May-09 9:49
Rama Krishna Vavilala29-May-09 9:49 
QuestionMy windows server trace is showing error Pin
avi_dadi200210-May-09 20:58
avi_dadi200210-May-09 20:58 
QuestionC# NETWORKING PROBLEM Pin
teddy110-May-09 20:46
teddy110-May-09 20:46 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

// Required namespaces
using System.Net.Sockets;
using System.IO;
using System.Net;
using System.Runtime.Serialization.Formatters.Binary;

namespace PRG31AI_Assignment_3_Client
{
public partial class frmClient : Form
{
#region Private Members

private TcpClient _tcpClient; // TcpClient to facilitate conenction with remote host
private BackgroundWorker _listenWorker; // BackgroundWorker for receiving incomming data
private BinaryFormatter _formatter; // BinaryFormatter for NetworkStream serialization / deserialization
private ObjectServerCommandResponse.ImageRequest _currentImageResponse; //Image variable for storing the image that is currently displayed
//private Socket ReceiveSocket;


//Created object for getting the images



// Delegate and event for custom event
private delegate void ServerResponseReceivedHandler(ObjectServerCommandResponse.ICommunication serverResponse);
private event ServerResponseReceivedHandler _ServerResponseReceived;

// Delegates to remedy cross thread access
private delegate void CrossThreadListBoxDelegate(List<string> images);
private delegate void CrossThreadControlDelagate(ClientState state);
private delegate void CrossThreadDisplayImageDelegate(ObjectServerCommandResponse.ImageRequest imageResponse);
private delegate void CrossThreadSaveImageDelegate();

// Path of log file to be used in logging certain actions
private static readonly string _eventLogPath = Application.StartupPath + @"\log.txt";

// Enum used to control enable state of controls on the form
private enum ClientState
{
Connected,
Disconnected,
AwaitingResponse,
ResponseReceived,
}

#endregion

#region Constructors

// Default constructor
public frmClient()
{
// Initialise instance variables and hookup events to handlers
_formatter = new BinaryFormatter();

_listenWorker = new BackgroundWorker();
_listenWorker.WorkerSupportsCancellation = true;
_listenWorker.DoWork += new DoWorkEventHandler(listenWorker_DoWork);


_ServerResponseReceived += new ServerResponseReceivedHandler(ServerResponseReceived);

InitializeComponent();

LogEvent("Client opened.");
}

#endregion

#region Events

#region Background Worker Events

// Do work event handler of the BackgroundWorker, fires when the RunWorkerAsync method is called
private void listenWorker_DoWork(object sender, DoWorkEventArgs e)
{
// INSERT REQUIRED CODE HERE



}

#endregion

#region Custom Events

// Custom event handler which receives the response from server and processes it depending on type of object
private void ServerResponseReceived(ObjectServerCommandResponse.ICommunication serverResponse)
{
// INSERT REQUIRED CODE HERE








}

#endregion

#region Button Clicks

private void btnConnect_Click(object sender, EventArgs e)
{
// Calls method to connect to remote server

Connect(txtAddress.Text ,Convert.ToInt32(txtPort.Text ));


}

private void btnDisconnect_Click(object sender, EventArgs e)
{
// Calls method to disconnect from server
Disconnect();
}

private void btnGetList_Click(object sender, EventArgs e)

// INSERT REQUIRED CODE HERE











if (_tcpClient.Connected)
{





_formatter = new BinaryFormatter();

ObjectServerCommandResponse.RequestImageList SendRequest = new ObjectServerCommandResponse.RequestImageList();
NetworkStream streamToSend=_tcpClient.GetStream ();

_formatter.Serialize(streamToSend, SendRequest);

ObjectServerCommandResponse.RequestImageList _images = (ObjectServerCommandResponse.RequestImageList)(_formatter.Deserialize(streamToSend));

lstBoxImages.Text += _images;


















}

private void btnGetImage_Click(object sender, EventArgs e)
{
// INSERT REQUIRED CODE HERE
}

private void btnSave_Click(object sender, EventArgs e)
{
// Calls the method to save the image to disk
SaveImage();
}

#endregion

#region Misc UI Events

private void lstBoxImages_SelectedIndexChanged(object sender, EventArgs e)
{
// Enables button if there is an item selected in the ListBox
btnGetImage.Enabled = (lstBoxImages.SelectedIndex > -1);
}

private void frmClient_FormClosing(object sender, FormClosingEventArgs e)
{
// INSERT REQUIRED CODE HERE
}

private void frmClient_FormClosed(object sender, FormClosedEventArgs e)
{
// INSERT REQUIRED CODE HERE
}

#endregion

#endregion

#region Methods

// Controls state of user interface controls depending on state of client
private void SetClientState(ClientState state)
{
// Ensures that the thread that created the controls is used to modify their state
if (this.InvokeRequired)
{
CrossThreadControlDelagate d = new CrossThreadControlDelagate(SetClientState);

this.Invoke(d, new object[] { state });
}
else
switch (state)
{
case ClientState.Connected:
btnConnect.Enabled = false;
btnDisconnect.Enabled = true;
grpBoxServerImages.Enabled = true;
txtAddress.Enabled = false;
txtPort.Enabled = false;
break;

case ClientState.Disconnected:
btnConnect.Enabled = true;
btnDisconnect.Enabled = false;
grpBoxServerImages.Enabled = false;
txtAddress.Enabled = true;
txtPort.Enabled = true;
lstBoxImages.Items.Clear();
btnGetImage.Enabled = false;
break;

case ClientState.AwaitingResponse:
grpBoxServerImages.Enabled = false;
grpBoxServerConnection.Enabled = false;
break;

case ClientState.ResponseReceived:
grpBoxServerImages.Enabled = true;
grpBoxServerConnection.Enabled = true;
break;
}
}

// Populates ListBox with image names from a generic list
private void PopulateImageList(List<string> images)
{
// Ensures that the thread that created the controls is used to modify their state
if (lstBoxImages.InvokeRequired)
{
CrossThreadListBoxDelegate d = new CrossThreadListBoxDelegate(PopulateImageList);

lstBoxImages.Invoke(d, new object[] { images });





}
else
{
// Clears ListBox of existing items
lstBoxImages.Items.Clear();

// Populates ListBox with new items from collection
lstBoxImages.Items.AddRange(images.ToArray());
}

}

// Connects to remote host
private void Connect(string ServerIP,int Portnum)
{
// INSERT REQUIRED CODE HERE


try
{
_tcpClient = new TcpClient();

_tcpClient.Connect(ServerIP, Portnum);
btnDisconnect.Enabled = true;
btnGetList.Enabled = true;
btnConnect.Enabled = false;
grpBoxServerImages.Enabled = true;
txtAddress.Enabled = false;
txtPort.Enabled = false;

}
catch (Exception errorMessage)
{
MessageBox.Show(errorMessage.ToString(), "Connection Error to Host");
System.Environment.Exit(System.Environment.ExitCode);
}
}

// Disconnects from remote host
private void Disconnect() // 10
{
// INSERT REQUIRED CODE HERE


btnDisconnect.Enabled = false;
btnConnect.Enabled =true ;
grpBoxServerImages.Enabled = false;
txtAddress.Enabled = true;
txtPort.Enabled = true;
lstBoxImages.Items.Clear();
btnGetImage.Enabled = false;
_tcpClient.Client.Close();
_tcpClient.Close();

Application.DoEvents();








}

// Displays image in provided PictureBox
private void DisplayImage(ObjectServerCommandResponse.ImageRequest imageResponse)
{
// Ensures that the thread that created the controls is used to modify their state
if (this.InvokeRequired)
{
CrossThreadDisplayImageDelegate imageDisplayDelegate = new CrossThreadDisplayImageDelegate(DisplayImage);
this.Invoke(imageDisplayDelegate, new object[] { imageResponse });
}
else
{
// Set the current image variable
_currentImageResponse = imageResponse;

// Set the GroupBox title to reflect the image that is about to be shown
grpBoxImageViewer.Text = "Image Viewer - \"" + _currentImageResponse.ImageName + "\"";

// Display the image via the PictureBox
picBoxImage.Image = _currentImageResponse.Image;

// Enables the save button now that an image is available to be saved
if (_currentImageResponse != null)
btnSave.Enabled = true;
}
}

// Saves image to disk
private void SaveImage()
{
// Ensures that the thread that created the controls is used to modify their state
if (this.InvokeRequired)
{
CrossThreadSaveImageDelegate imageSaveDelegate = new CrossThreadSaveImageDelegate(SaveImage);
this.Invoke(imageSaveDelegate);
}
else
{
// INSERT REQUIRED CODE HERE
}
}

// Logs specified actions to a textfile
private static void LogEvent(string eventDescription)
{
// Create an entry that contains the time of the event and a description of what occured
string logEntry = ((string)(DateTime.Now.ToLongTimeString() + ">")).PadRight(16) + eventDescription;

// INSERT REQUIRED CODE HERE
}

#endregion

private void frmClient_Load(object sender, EventArgs e)
{

}
}

Please can someone help me with that part of code, it is a c# client which sends object to the server with photos to get them fro the server
AnswerRe: C# NETWORKING PROBLEM Pin
Dave Kreskowiak11-May-09 5:01
mveDave Kreskowiak11-May-09 5:01 
AnswerRe: C# NETWORKING PROBLEM Pin
Larryville12-May-09 4:09
Larryville12-May-09 4:09 
QuestionSeperate one string into 2 Pin
KIDYA10-May-09 20:45
KIDYA10-May-09 20:45 
AnswerRe: Seperate one string into 2 Pin
Anubhava Dimri10-May-09 21:06
Anubhava Dimri10-May-09 21:06 
GeneralRe: Seperate one string into 2 Pin
KIDYA10-May-09 21:25
KIDYA10-May-09 21:25 
GeneralRe: Seperate one string into 2 Pin
Anubhava Dimri10-May-09 21:40
Anubhava Dimri10-May-09 21:40 
AnswerRe: Seperate one string into 2 Pin
OriginalGriff10-May-09 21:46
mveOriginalGriff10-May-09 21:46 
GeneralRe: Seperate one string into 2 Pin
KIDYA10-May-09 23:05
KIDYA10-May-09 23:05 
QuestionProgress Bar Pin
S K Y10-May-09 16:02
S K Y10-May-09 16:02 
AnswerRe: Progress Bar Pin
N a v a n e e t h10-May-09 16:25
N a v a n e e t h10-May-09 16:25 
GeneralRe: Progress Bar Pin
S K Y10-May-09 16:39
S K Y10-May-09 16:39 
GeneralRe: Progress Bar Pin
N a v a n e e t h10-May-09 17:21
N a v a n e e t h10-May-09 17:21 
QuestionRead Sql Server Message from C# Pin
I Believe In GOD10-May-09 13:53
I Believe In GOD10-May-09 13:53 
AnswerRe: Read Sql Server Message from C# Pin
Luc Pattyn10-May-09 14:28
sitebuilderLuc Pattyn10-May-09 14:28 
GeneralRe: Read Sql Server Message from C# Pin
N a v a n e e t h10-May-09 16:30
N a v a n e e t h10-May-09 16:30 
GeneralRe: Read Sql Server Message from C# Pin
Luc Pattyn10-May-09 17:34
sitebuilderLuc Pattyn10-May-09 17:34 
AnswerRe: Read Sql Server Message from C# Pin
N a v a n e e t h10-May-09 16:27
N a v a n e e t h10-May-09 16:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.