对于Java网络应用,不必大费周章地架设服务器,只需简短几行程序代码即可搞定。先在服务端创建服务器套接字,等待客户端发来连接请求;再在客户端发来连接请求;再在客户端寻找服务器端并要求网络连接;在完成网络连接后,服务器端再获取客户端的IP地址。
1、服务器端服务器套接字的设计:
需要选定端口号来驱动类ServerSocket
ServerSocket SS = new ServerSocket(port);
其中SS为新产生的服务器套接字的名字,port为选定的端口号,服务器套接字建立完毕之后,在设置网络连接套接字
Socket socket = SS.accept();
其中socket为新产生的网络连接套接字的名称,SS为服务器套接字名称,accept()为内置的接受网络连接的方法。当无任何客户端请求连接时,socket不起作用,一旦有客户端连接请求时,socket立即起作用并运行,socket是在当客户端有连接请求时才运行的。
2、客户端网络套接字设计
Socket socket = new Socket(InetAddress.getByName(serverIP), port);//利用Server的IP和port来连接
其中socket为新产生的网络连接套接字名称
import java.net.*;
import java.io.*;
public class Server{
ServerSocket SS;
Socket socket;
static int port;
public Server(){
try{
SS = new ServerSocket(port);//服务器套接字
System.out.println("Server created.");
System.out.println("waiting for client to connect...");
socket = SS.accept();
System.out.println("connected from Client " + socket.getInetAddress().getHostAddress());
socket.close();
}
catch(IOException e){
System.out.println(e.toString());
e.printStackTrace();
System.exit(1);
}
}
public static void main(String args[]){
if(args.length < 1){
System.out.println("Usage: java Server [port] ");
System.exit(1);
}
port = Integer.parseInt(args[0]);
Server serverStart = new Server();
}
}
import java.io.*;
imoport java.net.*;
public Client{
Socket socket;
static String servername;
static int port;
public Client(){
try{
socket = new Socket(InetAddress.getByName(servername), port);
socket.close();
}
catch(IOException e){
System.our.println("IOException when connecting Server!");
}
}
public static void main(String args[]){
if(args.length < 2){
System.out.println("USAGE: java Client [servername] [port]");
System.exit(1);
}
servername = args[0];
port = args[1];
Clent clientStart = new Client();
}
}