Sockets and Streams
    okibi 
    spam at ratedo.com
       
    Fri Apr  4 03:36:32 PDT 2008
    
    
  
I've asked something similar before, but my problem doesn't seem to be resolved.
Anyways, I have a program that I'm trying to use sockets to get it to talk to other instances. I have a server portion set up, as well as the client side, which seems to run pretty good. I'm using tcpsockets and socketstreams, and just doing a listn and wait for accept on the server side.
My question is this: Even though it usually connects just fine, once I verify that the connection is made and try to hit a function on the server side via the server portion, it will either run part of it, or none of it and crash. Am I maybe doing it wrong? This is my current code:
server:
auto soc = new TcpSocket();
soc.bind(new InternetAddress("localhost", 10101));
soc.listen(10);
while (true)
{
	Socket clientSocket = soc.accept();
	Stream str = new SocketStream(clientSocket);
	if(clientSocket.isAlive())
	{
		char[] line = str.readLine();
		clientSocket.close();
		if(line !is null)
		{
			srvCMD(replace(line, "\n", ""));
			line = null;
		}
		clientSocket.close();
	}
}
client:
Socket socket = new TcpSocket(new InternetAddress("localhost", 10101));
Stream stream = new SocketStream(socket);
if(socket.isAlive())
{
	stream.writeString(args[1]~"\n");
	socket.close();;
}
For the client, args[1] is simply the argument passed to the client that I'm wanting to relay to the server to get processed.
Am I doing something wrong?
Thanks!
    
    
More information about the Digitalmars-d-learn
mailing list