socket applications
lee
lee_member at pathlink.com
Tue Feb 21 16:08:05 PST 2006
I'm stuck. I haven't been able to find a tutorial that outlines the
creation of client programs using the phobos library. The following
program is my best guess as to how such a program could be written.
I'm trying to send data to a program similar to the listner app that
came with the d compiler. I'm still not certain about what steps are
to be takken when creating a network connection, and I don't know what
functions to implement from the library. The code that follows below
doesn't work, and I would like to know why. What's wrong with it? How
could it be fixed? And, How could I achieve my goal with a different
design?
Thanks for all the help so far;
Lee
import std.conv;
import std.socket;
Socket create_socket (Socket client_socket)
{
client_socket = new TcpSocket;
printf ("creating socket... \n");
assert (client_socket.isAlive);
return client_socket;
}
Socket initialize_socket (Socket client_socket)
{
client_socket.blocking = false;
client_socket.listen (10);
printf ("initialized socket... \n");
return client_socket;
}
Socket bind_socket (Socket client_socket, ushort port)
{
printf ("binding socket to port... \n");
client_socket.bind (new InternetAddress (port));
return client_socket;
}
int form_connection (Socket client_socket, Address host_address_a)
{
uint connection_status;
connection_status = 1;
printf ("connecting to host... \n");
client_socket.connect (host_address_a);
return connection_status;
}
int transmit_information (Socket client_socket, Address host_address_a,
char[1024] message)
{
uint connection_status;
connection_status = 2;
printf ("transmitting message... \n");
client_socket.sendTo (message, host_address_a);
return connection_status;
}
int close_connection (Socket client_socket)
{
SocketShutdown BOTH;
uint connection_status;
connection_status = 0;
printf ("shutting down connection... \n");
client_socket.shutdown (BOTH);
printf ("closing socket... \n");
client_socket.close ();
return connection_status;
}
int main ()
{
uint connection_status;
uint host_address;
short host_port;
Address host_address_a;
ushort port_address;
Socket client_socket;
char[1024] message = "transmission from client.\n";;
host_port = 4444; // adjust for real values
host_address = 1223001; // adjust for real values
host_address_a.addr = host_address;
host_address_a.port = host_port;
printf ("beginning network operations... \n");
client_socket = create_socket (client_socket);
client_socket = initialize_socket (client_socket);
client_socket = bind_socket (client_socket, port);
connection_status = form_connection
(client_socket, host_address_a);
connection_status = transmit_information
(client_socket, host_address_a, message);
connection_status = close_connection
(client_socket);
printf ("concluded network operations... \n");
return 1;
}
More information about the Digitalmars-d
mailing list