/////////////////////////////////////////////////////////////////////
// TestForm.cpp - Main Form declaration for message-passing demo //
// //
// Jim Fawcett, CSE687 - Object Oriented Design, Spring 2006 //
/////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Form1.h"
#include "../MessageForm/MessageForm.h"
#include "../clienthandler.h"
using namespace TestForm;
using namespace System::Text;
System::Void Form1::ClearMessages()
{
messageTextBox->Text = "";
}
System::Void Form1::DisplayMessage(String^ msg)
{
++count;
StringBuilder^ temp = gcnew StringBuilder();
temp->Append("#");
temp->Append(count.ToString());
temp->Append(" ");
temp->Append(msg);
temp->Append("\r\n");
temp->Append(messageTextBox->Text);
messageTextBox->Text = temp->ToString();
}
System::Void Form1::Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
localPortComboBox->Text = localPortComboBox->Items[0]->ToString();
}
System::Void Form1::listenButton_Click(System::Object^ sender, System::EventArgs^ e)
{
static ClientHandlerProc* pCHandler = new ClientHandlerProc(this);
pServer->registerClientHandler(pCHandler);
int port = Convert::ToInt32(localPortComboBox->Text);
pServer->start(port);
}
System::Void Form1::sendButton_Click(System::Object^ sender, System::EventArgs^ e)
{
pSender->send("a message");
}
System::Void Form1::connectButton_Click(System::Object^ sender, System::EventArgs^ e)
{
if(SenderConnected)
{
pSender->disconnect();
delete pSender;
pSender = new Socket;
}
String^ purl = addressBox->Text;
std::string temp;
for(int i=0; iLength; ++i)
temp += static_cast(purl[i]);
int port = Convert::ToInt32(remotePortComboBox->Text);
if(pSender->connect(temp, port))
{
SenderConnected = true;
Trace("connected successfully");
}
else
{
SenderConnected = false;
Trace("Connection failed");
}
}
System::Void Form1::MessageButton_Click(System::Object^ sender, System::EventArgs^ e)
{
MessageForm^ pMsgForm = gcnew MessageForm(this);
pMsgForm->Update();
pMsgForm->Show();
}
[STAThreadAttribute]
int main(array ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}