HELP!!!!!!! Send and receive between computers
I've made a program to send a line of text from one computer to another, which is the receiver. To do this i have to run the receiver from one computer and on the other computer i run send and then the text appears on the receiver, however i want all this to happen automatically so i just run the program and it does both of the these programs, any ideas on how to do this thanks.
here are the codes for my programs
Code Java:
/*
Program: ex10receiver
Date: August 98
Version: 1
Use: to send a packet to a reciever
*/
import java.net.*; // for network
import java.util.*; // for utilities
import java.io.*; // for streams
//import Command;
public class Command02
{
public static void main(String[] argv)
{
try
{
int portNumber = 3000;
byte[] buffer = new byte[1024];
// assume that port to send to is in arg vector
if (argv.length == 1)
{
portNumber = Integer.parseInt(argv[0]);
}
// now create and send packet
DatagramPacket packet =
new DatagramPacket(buffer,buffer.length);
DatagramSocket socket = new DatagramSocket(portNumber);
socket.setSoTimeout(0);
System.out.println("ready to receive on " +
socket.getLocalAddress().toString() +
" port: " + socket.getLocalPort());
socket.receive(packet);
Command data = new Command(packet.getData());
System.out.println("Received by " + data.toString());
System.out.println(" by ");
}
catch (IOException ioe)
{
System.out.println("ERROR: " + ioe);
}
}
}
Code Java:
/*
Program: ex10sender
Date: August 98
Version: 1
Use: to send a packet to a reciever
*/
import java.net.*; // for network
import java.util.*; // for utilities
import java.io.*; // for streams
//import Command;
public class Command03
{
public static void main(String[] argv)
{
try
{
InetAddress addr = InetAddress.getLocalHost();
//InetAddress addr = InetAddress.getByName("192.168.0.114");//IP address of recieving computer
int sendPortNumber = 4000;
int portNumber = 3000;
Command data = new Command("Danny Meldrum","N0251665", 4);
byte[] buffer = data.toString().getBytes();
// assume that machine and port to send to are in arg vector
if (argv.length == 2)
{
try
{
addr = InetAddress.getByName(argv[0]);
portNumber = Integer.parseInt(argv[1]);
}
catch (UnknownHostException uh)
{
addr = InetAddress.getLocalHost();
}
}
// now create and send packet
DatagramPacket packet =
new DatagramPacket(buffer,buffer.length,addr,portNumber);
DatagramSocket socket = new DatagramSocket(sendPortNumber);
System.out.println("ready to send on " +
socket.getLocalAddress().toString() +
" port: " + socket.getLocalPort());
socket.send(packet);
System.out.println("Packet data sent");
}
catch (UnknownHostException uh)
{
System.out.println("ERROR: " + uh);
System.exit(0);
}
catch (IOException ioe)
{
System.out.println("ERROR: " + ioe);
}
}
}
Code Java:
/*
Program: ex10command
Date: August 98
Version: 1
*/
import java.util.*;
class Command implements java.io.Serializable
{
public final static String Name = "Danny";
public final static String NTUNumber = "N0251665";
public final static String SHOW = "SHOW";
public String type;
public String item;
public int number;
public Command(String type, String item, int number)
{
this.type = type;
this.item = item;
this.number = number;
}
public Command()
{
type = null;
item = null;
number = 0;
}
public Command(String data)
{
StringTokenizer st = new StringTokenizer(data,",");
if (st.countTokens() < 3)
{ // empty data
type = null;
item = null;
number = 0;
}
else
{
type = st.nextToken().trim();
item = st.nextToken().trim();
number = Integer.parseInt(st.nextToken().trim());
}
}
public Command (byte[] data)
{
this(new String(data));
}
public String toString()
{
String sp = ",";
return type + sp + item + sp + String.valueOf(number);
}
public byte[] toByte()
{
return toString().getBytes();
}
}