From: Guilhem Lavaux Date: Thu, 2 Sep 1999 19:11:38 +0000 (+0000) Subject: Added a test to wxSocket sample (client side socket event test) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/765e386bfab10b2e035a993fb09301f5c1239842 Added a test to wxSocket sample (client side socket event test) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/wxsocket/client.cpp b/samples/wxsocket/client.cpp index c772f223b6..56e858ee1b 100644 --- a/samples/wxsocket/client.cpp +++ b/samples/wxsocket/client.cpp @@ -48,6 +48,7 @@ class MyFrame: public wxFrame DECLARE_CLASS(MyFrame) public: MyClient *sock; + int m_good; MyFrame(void); virtual ~MyFrame(); @@ -57,6 +58,7 @@ public: void OnQuitApp(wxCommandEvent& evt); void OnExecOpenConnection(wxCommandEvent& evt); void OnExecCloseConnection(wxCommandEvent& evt); + void OnSocketEvent(wxSocketEvent& evt); void UpdateStatus(); void Download(wxInputStream *input); @@ -86,6 +88,7 @@ const int SKDEMO_TEST2 = 104; const int SKDEMO_CLOSE = 105; const int SKDEMO_TEST3 = 106; const int ID_TEST_CLOSE = 107; +const int SKDEMO_SCK = 108; IMPLEMENT_APP(MyApp) @@ -188,8 +191,23 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(SKDEMO_QUIT, MyFrame::OnQuitApp) EVT_MENU(SKDEMO_CONNECT, MyFrame::OnExecOpenConnection) EVT_MENU(SKDEMO_CLOSE, MyFrame::OnExecCloseConnection) + EVT_SOCKET(SKDEMO_SCK, MyFrame::OnSocketEvent) END_EVENT_TABLE() +class MyFrameSocketTimer: public wxTimer { + public: + void Notify() { + *m_var = 0; + } + + int *m_var; +}; + +void MyFrame::OnSocketEvent(wxSocketEvent& evt) +{ + m_good = 1; +} + void MyFrame::OnCloseTest(wxCommandEvent& evt) { wxButton *button = (wxButton *)evt.GetEventObject(); @@ -259,7 +277,37 @@ void MyFrame::OnExecTest1(wxCommandEvent& WXUNUSED(evt)) sock->Close(); UpdateStatus(); } else - text_win->WriteText("done\nTest 1 passed !\n"); + text_win->WriteText("done\nTest 1A passed !\n"); + + /* No 2 */ + sock->SetEventHandler(*this, SKDEMO_SCK); + sock->SetNotify(GSOCK_INPUT | GSOCK_LOST); + sock->Notify(TRUE); + + text_win->WriteText("Test 1B: sending bytes to the server\n"); + wxYield(); + sock->Write((char *)buf, wxStrlen(buf)+1); + text_win->WriteText("Waiting for incoming bytes (timeout = 2 sec) ..."); + wxYield(); + + m_good = 2; + + MyFrameSocketTimer timer; + + timer.m_var = &m_good; + timer.Start(2000, TRUE); + + while (m_good == 2) + wxYield(); + + if (!m_good) { + text_win->WriteText("Timeout ! Failed.\n"); + sock->Close(); + UpdateStatus(); + } else + text_win->WriteText("Success."); + + sock->Read((char *)buf2, wxStrlen(buf)+1); dlgbox->Layout(); dlgbox->ShowModal(); diff --git a/samples/wxsocket/server.cpp b/samples/wxsocket/server.cpp index 1890bf5a62..26001a4453 100644 --- a/samples/wxsocket/server.cpp +++ b/samples/wxsocket/server.cpp @@ -197,6 +197,10 @@ void MyFrame::ExecTest1(wxSocketBase *sock_o) l = sock_o->Read(buf, 50).LastCount(); sock_o->Write(buf, l); + l = sock_o->Read(buf, 50).LastCount(); + sock_o->Write(buf, l); + + delete[] buf; } void MyFrame::UpdateStatus(int incr)