第一次涉及到SOCKET 的实验,有关 try 语句的地方不太明白,还请帮忙完善一下~~~发送方
import java.io.BufferedReader; //sender
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class MsgSender { static String receiverHost = "localhost";
static InetAddress receiverIP;
static int receiverPort = 0; static ObjectOutputStream outToReceiver;
static Socket senderSocket; public static void main(String[] args) { if( args.length == 2 ) {
receiverHost = args[0];
receiverPort = Integer.parseInt(args[1]);
}
else if ( args.length == 1 )
// MsgReceiver is at 'localhost'
receiverPort = Integer.parseInt(args[0]);
else {
printHelp();
return;
}
// Get the IPaddress of Receiver Host
try {
// ... }
catch (UnknownHostException uhe) {
System.err.println("unknown host: " + receiverHost);
return;
}
// connect a socket to the receiver
try { // ... } catch (ConnectException e) {
// exit (or wait until the receiver is ready)
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// set up a socket stream and keyin stream BufferedReader inFromUser ; try { // ... } catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
//clientSocket.close();
} while (true) { try {
// wait for input line
// and then send to the socket stream
} catch (UnknownHostException e) {
//e.printStackTrace();
} catch (IOException e) {
//e.printStackTrace();
break;
} } }
private static void printHelp() {
System.err.println("MsgSender [<receiver host>] <receiver port> ");
System.err.println("where <receiver port> is the port number at which MsgReceiver is listening");
System.err.println(" <receiver host> is the host name or IP address where MsgReceiver is running(default: localhost) ");
}
}
接收方
import java.io.BufferedReader; //receiver
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class MsgReceiver { static int receiverPort = 6666;
static ServerSocket welcomeSocket = null;
static Socket receiverSocket = null;
static ObjectInputStream inFromSender = null;
public static void main(String[] args) {
if ( args.length == 1 )
receiverPort = Integer.parseInt(args[0]);
else {
printHelp();
return;
}
try { // wait for a connection request from MsgSender
welcomeSocket = new ServerSocket(receiverPort);
}
catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Receiver: Server Socket Exception");
e.printStackTrace();
}
try {
// 胶飘覆 霖厚
}
catch (IOException e) {
e.printStackTrace();
}
while (true) {
try {
// read from the socket stream
// and print to the console
}
catch (IOException e) {
//e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
private static void printHelp() {
System.err.println("MsgReceiver <receiver port>");
System.err.println("where <receiver port> is the port number at which MsgReceiver is listening");
}
}
SOCKET
import java.io.BufferedReader; //sender
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class MsgSender { static String receiverHost = "localhost";
static InetAddress receiverIP;
static int receiverPort = 0; static ObjectOutputStream outToReceiver;
static Socket senderSocket; public static void main(String[] args) { if( args.length == 2 ) {
receiverHost = args[0];
receiverPort = Integer.parseInt(args[1]);
}
else if ( args.length == 1 )
// MsgReceiver is at 'localhost'
receiverPort = Integer.parseInt(args[0]);
else {
printHelp();
return;
}
// Get the IPaddress of Receiver Host
try {
// ... }
catch (UnknownHostException uhe) {
System.err.println("unknown host: " + receiverHost);
return;
}
// connect a socket to the receiver
try { // ... } catch (ConnectException e) {
// exit (or wait until the receiver is ready)
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// set up a socket stream and keyin stream BufferedReader inFromUser ; try { // ... } catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
//clientSocket.close();
} while (true) { try {
// wait for input line
// and then send to the socket stream
} catch (UnknownHostException e) {
//e.printStackTrace();
} catch (IOException e) {
//e.printStackTrace();
break;
} } }
private static void printHelp() {
System.err.println("MsgSender [<receiver host>] <receiver port> ");
System.err.println("where <receiver port> is the port number at which MsgReceiver is listening");
System.err.println(" <receiver host> is the host name or IP address where MsgReceiver is running(default: localhost) ");
}
}
接收方
import java.io.BufferedReader; //receiver
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ConnectException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class MsgReceiver { static int receiverPort = 6666;
static ServerSocket welcomeSocket = null;
static Socket receiverSocket = null;
static ObjectInputStream inFromSender = null;
public static void main(String[] args) {
if ( args.length == 1 )
receiverPort = Integer.parseInt(args[0]);
else {
printHelp();
return;
}
try { // wait for a connection request from MsgSender
welcomeSocket = new ServerSocket(receiverPort);
}
catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Receiver: Server Socket Exception");
e.printStackTrace();
}
try {
// 胶飘覆 霖厚
}
catch (IOException e) {
e.printStackTrace();
}
while (true) {
try {
// read from the socket stream
// and print to the console
}
catch (IOException e) {
//e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
private static void printHelp() {
System.err.println("MsgReceiver <receiver port>");
System.err.println("where <receiver port> is the port number at which MsgReceiver is listening");
}
}
SOCKET
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货