The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Client/Server Issue geauxtn AIX 5 07-30-2007 09:38 AM
client/server bole UNIX for Dummies Questions & Answers 2 10-30-2006 02:19 AM
client server interaction? anyone know zmanultra High Level Programming 0 10-16-2005 09:48 AM
ntp server and ntp client bubba112557 SUN Solaris 1 05-10-2005 11:37 AM
What's the difference between an SSH Client and an SSH Server? PSC Security 1 07-19-2004 04:24 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-01-2007
JCR JCR is offline
Registered User
  
 

Join Date: Jan 2007
Posts: 38
client and server programs

Hello,

Looking at the asio.sourceforge.net library, I found a tutorial to develop simple client and server programs. Below I am pasting the client and the server. On my Fedora Core 4, I can compile the two programs(client is 'a' and server is 'daytime', but I have no idea on how to test them...
./a
returns
Usage: client <host>
while
./daytime
returns
Permission denied

What should I do to make the two programs talk to each other? I am sure it is pretty basic here but I cannot seem to figure it out. I am posting on this forum because it looks to me that this is more a unix question than an asio one.
thanks in advance
Regards,


SERVER
Code:
 
#include <ctime>
#include <iostream>
#include <string>
#include <boost/asio.hpp>

using boost::asio::ip::tcp;

std::string make_daytime_string()
{
  using namespace std; // For time_t, time and ctime;
  time_t now = time(0);
  return ctime(&now);
}

int main()
{
  try
  {
    boost::asio::io_service io_service;

    tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 13));

    for (;;)
    {
      tcp::socket socket(io_service);
      acceptor.accept(socket);

      std::string message = make_daytime_string();

      boost::asio::write(socket, boost::asio::buffer(message),
          boost::asio::transfer_all(), boost::asio::ignore_error());
    }
  }
  catch (std::exception& e)
  {
    std::cerr << e.what() << std::endl;
  }

  return 0;
}

CLIENT
Code:
#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>

using boost::asio::ip::tcp;

int main(int argc, char* argv[])
{
  try
  {
    if (argc != 2)
    {
      std::cerr << "Usage: client <host>" << std::endl;
      return 1;
    }
    
    boost::asio::io_service io_service;

    tcp::resolver resolver(io_service);
    tcp::resolver::query query(argv[1], "daytime");
    tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
    tcp::resolver::iterator end;

    tcp::socket socket(io_service);
    boost::asio::error error = boost::asio::error::host_not_found;
    while (error && endpoint_iterator != end)
    {
      socket.close();
      socket.connect(*endpoint_iterator++, boost::asio::assign_error(error));
    }
    if (error)
      throw error;

    for (;;)
    {
      boost::array<char, 128> buf;
      boost::asio::error error;

      size_t len = socket.read_some(
          boost::asio::buffer(buf), boost::asio::assign_error(error));

      if (error == boost::asio::error::eof)
        break; // Connection closed cleanly by peer.
      else if (error)
        throw error; // Some other error.

      std::cout.write(buf.data(), len);
    }
  }
  catch (std::exception& e)
  {
    std::cerr << e.what() << std::endl;
  }

  return 0;
}
  #2 (permalink)  
Old 03-02-2007
blowtorch's Avatar
blowtorch blowtorch is offline Forum Advisor  
Supporter
  
 

Join Date: Dec 2004
Location: Singapore
Posts: 2,350
The error with the server is likely that there are no permissions to run the file. Check and make sure that the file has the x bit set. For the client, you need to specify the name of the server to connect to.
  #3 (permalink)  
Old 03-02-2007
JCR JCR is offline
Registered User
  
 

Join Date: Jan 2007
Posts: 38
I changed the permission for server with
chmod 777 daytime
but
./a daytime
still returns
Host not found (authoritative).
What would be the right syntax to add the <host>?
Thanks!
  #4 (permalink)  
Old 03-02-2007
JCR JCR is offline
Registered User
  
 

Join Date: Jan 2007
Posts: 38
actually, when I run from root
./daytime
the process starts running and
ps -A
returns
7268 pts/1 00:00:00 daytime

well, I am still confused on what's exactly is going on... and what I should do to use that server from my client

Last edited by JCR; 03-02-2007 at 07:20 AM..
  #5 (permalink)  
Old 03-03-2007
Hitori's Avatar
Hitori Hitori is offline Forum Advisor  
Registered User
  
 

Join Date: Jun 2006
Posts: 360
Learn raw sockets first http://beej.us/guide/bgnet/
  #6 (permalink)  
Old 03-03-2007
JCR JCR is offline
Registered User
  
 

Join Date: Jan 2007
Posts: 38
That's a pretty good tutorial.Thank you. Light has not yet come on my specific problem but I agree that there is no shortcut here.
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 10:50 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0